Differences

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

Link to this comparison view

poo-is-ab:laboratoare:03 [2025/10/17 18:14]
razvan.cristea0106 [Programarea Orientată pe Obiecte (POO)]
poo-is-ab:laboratoare:03 [2025/12/07 13:14] (current)
razvan.cristea0106 [Programarea Orientată pe Obiecte (POO)]
Line 191: Line 191:
 </​code>​ </​code>​
  
-<note important>​Un obiect nu este altceva decât un reprezentant al clasei, care respectă structura acesteia, adică deține toate proprietățile pe care clasa le pune la dispoziție. Pentru a înțelege ​puteți ​face analogia cu oamenii. Toți oamenii au plămâni, aceasta fiind o caracteristică comună speciei umane. Diferențele pot să apară la starea de sănătate a plămânilor,​ deoarece, în general, persoanele mai tinere au plămâni mai sănătoși comparativ cu cei ai persoanelor vârstnice. Starea de sănătate a plămânilor poate varia și în funcție de factori precum stilul de viață, expunerea la poluare sau fumat.</​note>​+<note important>​Un ​**obiect** nu este altceva decât un **reprezentant** al clasei, care respectă structura acesteia, adică deține ​**toate proprietățile** pe care clasa le pune la dispoziție. Pentru a înțelege ​mai bine putem face analogia cu oamenii. Toți oamenii au **plămâni**, aceasta fiind o **caracteristică comună** speciei umane. Diferențele pot să apară la **starea de sănătate** a plămânilor,​ deoarece, în general, persoanele mai **tinere** au plămâni ​**mai sănătoși** comparativ cu cei ai persoanelor ​**vârstnice**. Starea de sănătate a plămânilor poate varia și în funcție de **factori** precum ​**stilul de viață****expunerea la poluare** sau **fumat**.</​note>​
  
 Dacă vom dori să accesăm membrii clasei **Brad** direct din funcția **main** vom primi o eroare de compilare, deoarece membrii sunt **inaccesibili**. Dacă vom dori să accesăm membrii clasei **Brad** direct din funcția **main** vom primi o eroare de compilare, deoarece membrii sunt **inaccesibili**.
Line 243: Line 243:
 </​code>​ </​code>​
  
-<note warning>​Acest lucru însă **nu** este o variantă indicată, deoarece **am încălcat principiul încapsulării datelor** și în plus, acum oricine poate modifica din exterior membrii clasei. După cum se poate observa, clasa **Brad** scrisă în această manieră se comportă exact ca o structură. Diferența între cele 2 (struct și class) constă în faptul că într-o structură totul este marcat cu **public** by default în timp ce o clasă are membrii by default marcați cu **private**. Vom menționa mai târziu cum putem respecta principiul încaspulării datelor pentru clasa **Brad** când vom discuta despre funcții membre (metode).</​note>​+<note warning>​Acest lucru însă **nu** este o variantă indicată, deoarece **am încălcat principiul încapsulării datelor** și în plus, acum oricine poate modifica din exterior membrii clasei. După cum se poate observa, clasa **Brad** scrisă în această manieră se comportă exact ca o **structură**. Diferența între cele 2 (**struct** și **class**) constă în faptul că într-o structură ​**totul** este marcat cu **public** by default în timp ce o clasă are membrii by default marcați cu **private**. Vom menționa mai târziu cum putem respecta principiul încaspulării datelor pentru clasa **Brad** când vom discuta despre ​**funcții membre** (**metode**).</​note>​
  
 == Moștenirea == == Moștenirea ==
Line 249: Line 249:
 Moștenirea (**Inheritance**) permite unei clase să **preia** proprietățile și comportamentele unei alte clase, oferind astfel posibilitatea reutilizării codului. În același timp, **clasa derivată (clasa moștenitoare)** poate adăuga funcționalități specifice pe care clasa de bază nu le are, extinzând astfel comportamentul acesteia și adaptându-l la nevoile proprii. ​ Moștenirea (**Inheritance**) permite unei clase să **preia** proprietățile și comportamentele unei alte clase, oferind astfel posibilitatea reutilizării codului. În același timp, **clasa derivată (clasa moștenitoare)** poate adăuga funcționalități specifice pe care clasa de bază nu le are, extinzând astfel comportamentul acesteia și adaptându-l la nevoile proprii. ​
  
-<​note>​Ca și exemplu putem lua omul care este un mamifer. Omul la fel ca toate mamiferele are plămâni, dar spre deosebire de alte animale din categoria mamiferelor acesta are o postură bipedă. Vom detalia mai multe despre moștenire peste câteva laboratoare și tot atunci vom vorbi mai mult despre specificatorul de acces **protected**.</​note>​+<​note>​Ca și exemplu putem lua ***omul** care este un **mamifer**. Omul la fel ca toate mamiferele are **plămâni**, dar spre deosebire de alte animale din categoria mamiferelor acesta are o **postură bipedă**. Vom detalia mai multe despre ​**moștenire** peste câteva laboratoare și tot atunci vom vorbi mai mult despre specificatorul de acces **protected**.</​note>​
  
 == Polimorfismul == == Polimorfismul ==
Line 310: Line 310:
 == Constructorii == == Constructorii ==
  
-Așa cum le spune și numele această categorie de metode se ocupă de **construirea (inițializarea) obiectelor**.+Așa cum le spune și numele această categorie de metode se ocupă de **construirea (inițializarea) obiectelor ​(instanțelor clasei)**.
  
 Constructorii au o serie de trăsături care îi fac pe aceștia foarte ușor de recunoscut după cum urmează: Constructorii au o serie de trăsături care îi fac pe aceștia foarte ușor de recunoscut după cum urmează:
Line 399: Line 399:
     Brad(const float& inaltime); // constructor cu un parametru     Brad(const float& inaltime); // constructor cu un parametru
  
-    Brad(const int& vechime, const float& inaltime, const double& pret);+    Brad(const int& vechime, const float& inaltime, const double& pret); ​// constructor cu trei parametri
 }; };
  
Line 440: Line 440:
  
 <code cpp> <code cpp>
-// Brad::​Brad(Brad* this, const float& inaltime) -> asa arata de fapt aceasta metodafunctie membra la compilare+// Brad::​Brad(Brad* this, const float& inaltime) -> asa arata de fapt aceasta metoda ​(functie membrala compilare
 Brad::​Brad(const float& inaltime) Brad::​Brad(const float& inaltime)
 { {
poo-is-ab/laboratoare/03.1760714072.txt.gz · Last modified: 2025/10/17 18:14 by razvan.cristea0106
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