Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sd-ca:articole:tutorial-02-1 [2016/02/28 21:30]
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 277: Line 278:
  
 </​code>​ </​code>​
 +
 +==== Aprofundare ====
 +Încercați să extindeți class Point2D la class Point3D (punct în spațiu). Care sunt diferențele?​
sd-ca/articole/tutorial-02-1.1456687804.txt.gz · Last modified: 2016/02/28 21:30 by darius.neatu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0