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? |