This shows you the differences between two versions of the page.
|
sd-ca:articole:tutorial-02-1 [2016/02/28 21:31] darius.neatu |
sd-ca:articole:tutorial-02-1 [2016/03/03 01:02] (current) andrei.vasiliu2211 [Obiective] |
||
|---|---|---|---|
| Line 8: | Line 8: | ||
| * să construim class Point2D, cu doi membri de tip double astfel încât să poată memora cele două coordonate | * să construim class Point2D, cu doi membri de tip double astfel încât să poată memora cele două coordonate | ||
| * să adaugam lui class Point2D o metode de tip SETTER/GETTER pentru a putea accesa/modifica coordonatele unui punct | * să adaugam lui class Point2D o metode de tip SETTER/GETTER pentru a putea accesa/modifica coordonatele unui punct | ||
| - | * să adaugam si alte functionalitati lui class Point2D, precum posibilitatea calculării distanței dintre două punct | + | * să adaugam si alte functionalitati lui class Point2D, precum posibilitatea calculării distanței dintre două puncte |
| * să testam class Point2D printr-un cod simplu care arată cum creează elemente de tip Point2D și cum se calculează distanța dintre două puncte | * să testam class Point2D printr-un cod simplu care arată cum creează elemente de tip Point2D și cum se calculează distanța dintre două puncte | ||
| * să exemplificăm conceptul de rule of three | * să exemplificăm conceptul de rule of three | ||
| Line 16: | Line 16: | ||
| ===== Dezvoltare ===== | ===== Dezvoltare ===== | ||
| - | ==== Varianta de baza a lui class Point2D ==== | + | ==== Varianta de bază a lui class Point2D ==== |
| - | Vom considera ca varianta de baza o clasă care conține două elemente de tip double. | + | Vom considera ca variantă de bază un struct care conține două elemente de tip double. |
| <code cpp> | <code cpp> | ||
| - | #ifndef __PUNCT2D__ | + | #ifndef __POINT2D__ |
| - | #define __PUNCT2D__ | + | #define __POINT2D__ |
| struct Point2D { | struct Point2D { | ||
| Line 28: | Line 28: | ||
| }; | }; | ||
| - | #endif // __PUNCT2D__ | + | #endif __POINT2D__ |
| </code> | </code> | ||
| Line 34: | Line 34: | ||
| <code cpp> | <code cpp> | ||
| - | #ifndef __PUNCT2D__ | + | #ifndef __POINT2D__ |
| - | #define __PUNCT2D__ | + | #define __POINT2D__ |
| class Point2D { | class Point2D { | ||
| Line 64: | Line 64: | ||
| }; | }; | ||
| - | #endif // __PUNCT2D__ | + | #endif // __POINT2D__ |
| </code> | </code> | ||
| Line 74: | Line 74: | ||
| <code cpp> | <code cpp> | ||
| + | // Constructor default | ||
| Point2D() { | Point2D() { | ||
| x = 0; | x = 0; | ||
| Line 102: | Line 103: | ||
| Atenție! Trebuie inclusă biblioteca cmath pentru a putea utiliza funcția sqrt! | Atenție! Trebuie inclusă biblioteca cmath pentru a putea utiliza funcția sqrt! | ||
| <code cpp> | <code cpp> | ||
| - | #ifndef __PUNCT2D__ | + | #ifndef __POINT2D__ |
| - | #define __PUNCT2D__ | + | #define __POINT2D__ |
| #include <cmath> | #include <cmath> | ||
| Line 139: | Line 140: | ||
| <code cpp> | <code cpp> | ||
| - | #ifndef __PUNCT2D__ | + | #ifndef __POINT2D__ |
| - | #define __PUNCT2D__ | + | #define __POINT2D__ |
| #include <cmath> | #include <cmath> | ||
| Line 155: | Line 156: | ||
| // Operator de atribuire | // Operator de atribuire | ||
| - | Point2D& operator=(Point2D& p) { | + | Point2D& operator=(const Point2D& p) { |
| this->x = p.x; | this->x = p.x; | ||
| this->y = p.y; | this->y = p.y; | ||
| Line 188: | Line 189: | ||
| } | } | ||
| - | #endif // __PUNCT2D__ | + | #endif // __POINT2D__ |
| </code> | </code> | ||
| Line 278: | Line 279: | ||
| </code> | </code> | ||
| - | + | ==== Aprofundare ==== | |
| - | Încercați să extindeți class Point2D la class Point3D (punct in spațiu). Care sunt diferențele? | + | Încercați să extindeți class Point2D la class Point3D (punct în spațiu). Care sunt diferențele? |