Differences

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

Link to this comparison view

poo-is-ab:laboratoare:03 [2025/09/23 19:58]
razvan.cristea0106
poo-is-ab:laboratoare:03 [2025/10/11 16:16] (current)
razvan.cristea0106
Line 29: Line 29:
  
 struct Avion struct Avion
-{  +
- int numarLocuri;​  +    int numarLocuri;​ 
- int anFabricatie;​ +    int anFabricatie;​ 
- float capacitateRezervor;​+    float capacitateRezervor;​
 }; };
  
 void afisareAvion(const Avion& avion) void afisareAvion(const Avion& avion)
 { {
- std::cout << "​Numarul de locuri din avion este: " << avion.numarLocuri << '​\n';​ +    ​std::cout << "​Numarul de locuri din avion este: " << avion.numarLocuri << '​\n';​ 
- std::cout << "Anul de fabricatie al avionului este: " << avion.anFabricatie << '​\n';​ +    std::cout << "Anul de fabricatie al avionului este: " << avion.anFabricatie << '​\n';​ 
- std::cout << "​Capacitatea rezervorului avionului este: " << avion.capacitateRezervor << " litri\n";​+    std::cout << "​Capacitatea rezervorului avionului este: " << avion.capacitateRezervor << " litri\n";​
 } }
  
 int main() int main()
 { {
- Avion avion; // in limbajul C era eroare de compilare daca nu foloseam typedef la definirea structurii +    ​Avion avion; // in limbajul C era eroare de compilare daca nu foloseam typedef la definirea structurii 
-        /* struct Avion avion; // ar fi fost declaratia corecta pentru o variabila de tip Avion in C */+    /* struct Avion avion; // ar fi fost declaratia corecta pentru o variabila de tip Avion in C */
  
- avion.numarLocuri = 230; +    ​avion.numarLocuri = 230; 
- avion.anFabricatie = 2000; +    avion.anFabricatie = 2000; 
- avion.capacitateRezervor = 755.5f;+    avion.capacitateRezervor = 755.5f;
  
- afisareAvion(avion);​+    ​afisareAvion(avion);​
  
- return 0;+    ​return 0;
 } }
 </​code>​ </​code>​
Line 70: Line 70:
 struct Avion struct Avion
 { {
- int numarLocuri;​ +    ​int numarLocuri;​ 
- int anFabricatie;​ +    int anFabricatie;​ 
- float capacitateRezervor;​+    float capacitateRezervor;​
 }; };
  
 void afisareAvion(const Avion* const avion) void afisareAvion(const Avion* const avion)
 { {
- printf("​Numarul de locuri din avion este: %d\n", avion->​numarLocuri);​ +    ​printf("​Numarul de locuri din avion este: %d\n", avion->​numarLocuri);​ 
- printf("​Anul de fabricatie al avionului este: %d\n", avion->​anFabricatie);​ +    printf("​Anul de fabricatie al avionului este: %d\n", avion->​anFabricatie);​ 
- printf("​Capacitatea rezervorului avionului este: %.2f litri\n",​ avion->​capacitateRezervor);​+    printf("​Capacitatea rezervorului avionului este: %.2f litri\n",​ avion->​capacitateRezervor);​
 } }
  
 int main() int main()
 { {
- Avion avion;+    ​Avion avion;
  
- avion.numarLocuri = 230; +    ​avion.numarLocuri = 230; 
- avion.anFabricatie = 2000; +    avion.anFabricatie = 2000; 
- avion.capacitateRezervor = 755.5f;+    avion.capacitateRezervor = 755.5f;
  
- afisareAvion(&​avion);​+    ​afisareAvion(&​avion);​
  
- return 0;+    ​return 0;
 } }
 </​code>​ </​code>​
Line 126: Line 126:
 class Brad class Brad
 { {
- int vechime; +    ​int vechime; 
- float inaltime; +    float inaltime; 
- double pret;+    double pret;
 }; };
 </​code>​ </​code>​
Line 163: Line 163:
 private: // specificatorul de acces private, nu era necesar sa il punem deoarece membrii deja erau privati private: // specificatorul de acces private, nu era necesar sa il punem deoarece membrii deja erau privati
  
- int vechime; +    ​int vechime; 
- float inaltime; +    float inaltime; 
- double pret;+    double pret;
 }; };
 </​code>​ </​code>​
Line 178: Line 178:
 private: private:
  
- int vechime; +    ​int vechime; 
- float inaltime; +    float inaltime; 
- double pret;+    double pret;
 }; };
  
 int main() int main()
 { {
- Brad brad; // obiect de tipul clasei Brad (instanta a clasei Brad)+    ​Brad brad; // obiect de tipul clasei Brad (instanta a clasei Brad)
  
- return 0;+    ​return 0;
 } }
 </​code>​ </​code>​
Line 200: Line 200:
 class Brad class Brad
 { {
- int vechime; +    ​int vechime; 
- float inaltime; +    float inaltime; 
- double pret;+    double pret;
 }; };
  
 int main() int main()
 { {
- Brad brad;+    ​Brad brad;
  
- brad.vechime = 2; // eroare de compilare, membrul vechime este privat +    ​brad.vechime = 2; // eroare de compilare, membrul vechime este privat 
- brad.inaltime = 5.25f; // gresit, membrul inaltime este inaccesibil  +    brad.inaltime = 5.25f; // gresit, membrul inaltime este inaccesibil  
- brad.pret = 299.99; // membrul pret este marcat ca private+    brad.pret = 299.99; // membrul pret este marcat ca private
  
- return 0;+    ​return 0;
 } }
 </​code>​ </​code>​
Line 226: Line 226:
 public: // in acest moment cei 3 membri ai clasei sunt vizibili in exteriorul acesteia public: // in acest moment cei 3 membri ai clasei sunt vizibili in exteriorul acesteia
  
- int vechime; +    ​int vechime; 
- float inaltime; +    float inaltime; 
- double pret;+    double pret;
 }; };
  
 int main() int main()
 { {
- Brad brad;+    ​Brad brad;
  
- brad.vechime = 2; +    ​brad.vechime = 2; 
- brad.inaltime = 5.25f; +    brad.inaltime = 5.25f; 
- brad.pret = 299.99;+    brad.pret = 299.99;
  
- return 0;+    ​return 0;
 } }
 </​code>​ </​code>​
Line 264: Line 264:
 void interschimbare(int* a, int* b) void interschimbare(int* a, int* b)
 { {
- if (a == nullptr || b == nullptr) +    ​if (a == nullptr || b == nullptr) 
-+    
- return; +        return; 
- }+    }
  
- int auxiliar = *a; +    ​int auxiliar = *a; 
- *a = *b; +    *a = *b; 
- *b = auxiliar;+    *b = auxiliar;
 } }
  
 void interschimbare(int&​ a, int& b) void interschimbare(int&​ a, int& b)
 { {
- int auxiliar = a; +    ​int auxiliar = a; 
- a = b; +    a = b; 
- b = auxiliar;+    b = auxiliar;
 } }
  
 int main() int main()
 { {
- int x = 22; +    ​int x = 22; 
- int y = 8;+    int y = 8;
  
- interschimbare(&​x,​ &y);+    ​interschimbare(&​x,​ &y);
  
- std::cout << "​Valoarea lui x este: " << x << '​\n';​ +    ​std::cout << "​Valoarea lui x este: " << x << '​\n';​ 
- std::cout << "​Valoarea lui y este: " << y << '​\n';​+    std::cout << "​Valoarea lui y este: " << y << '​\n';​
  
- interschimbare(x,​ y);+    ​interschimbare(x,​ y);
  
- std::cout << "​Valoarea lui x este: " << x << '​\n';​ +    ​std::cout << "​Valoarea lui x este: " << x << '​\n';​ 
- std::cout << "​Valoarea lui y este: " << y << '​\n';​+    std::cout << "​Valoarea lui y este: " << y << '​\n';​
  
- return 0;+    ​return 0;
 } }
 </​code>​ </​code>​
Line 325: Line 325:
 class Brad class Brad
 { {
- int vechime; +    ​int vechime; 
- float inaltime; +    float inaltime; 
- double pret;+    double pret;
  
 public: public:
  
- Brad() +    ​Brad() 
-+    
- vechime = 0; +        vechime = 0; 
- inaltime = 0.0f; +        inaltime = 0.0f; 
- pret = 0.0; +        pret = 0.0; 
- }+    }
 }; };
  
 int main() int main()
 { {
- Brad brad; // echivalent cu a scrie direct Brad brad = Brad();+    ​Brad brad; // echivalent cu a scrie direct Brad brad = Brad();
  
- return 0;+    ​return 0;
 } }
 </​code>​ </​code>​
Line 356: Line 356:
 class Brad // declaratia clasei se va scrie intr-un fisier cu extensia .h class Brad // declaratia clasei se va scrie intr-un fisier cu extensia .h
 { {
- int vechime; +    ​int vechime; 
- float inaltime; +    float inaltime; 
- double pret;+    double pret;
  
 public: public:
  
- Brad();+    ​Brad();
 }; };
  
 Brad::​Brad() // aceasta bucata de cod va exista intr-un fisier cu extensia .cpp Brad::​Brad() // aceasta bucata de cod va exista intr-un fisier cu extensia .cpp
 { {
- vechime = 0; +    ​vechime = 0; 
- inaltime = 0.0f; +    inaltime = 0.0f; 
- pret = 0.0;+    pret = 0.0;
 } }
  
 int main() int main()
 { {
- Brad brad; // echivalent cu a scrie direct Brad brad = Brad();+    ​Brad brad; // echivalent cu a scrie direct Brad brad = Brad();
  
- return 0;+    ​return 0;
 } }
 </​code>​ </​code>​
Line 389: Line 389:
 class Brad class Brad
 { {
- int vechime; +    ​int vechime; 
- float inaltime; +    float inaltime; 
- double pret;+    double pret;
  
 public: public:
  
- // Brad();+    ​// Brad();
  
- 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);
 }; };
  
 int main() int main()
 { {
- Brad brad; // eroare de compilare, nu exista constructor default+    ​Brad brad; // eroare de compilare, nu exista constructor default
  
- return 0;+    ​return 0;
 } }
 </​code>​ </​code>​
Line 419: Line 419:
 Brad::​Brad(const float& inaltime) Brad::​Brad(const float& inaltime)
 { {
- vechime = 0; +    ​vechime = 0; 
- inaltime = inaltime; // eroare de compilare +    inaltime = inaltime; // eroare de compilare 
- pret = 0.0;+    pret = 0.0;
 } }
 </​code>​ </​code>​
Line 443: Line 443:
 Brad::​Brad(const float& inaltime) Brad::​Brad(const float& inaltime)
 { {
- vechime = 0; // nu este nevoie de this deoarece compilatorul stie ca este vorba despre campul vechime al obiectului curent +    ​vechime = 0; // nu este nevoie de this deoarece compilatorul stie ca este vorba despre campul vechime al obiectului curent 
- this->​inaltime = inaltime; +    this->​inaltime = inaltime; 
- pret = 0.0; // aceeasi explicatie ca la vechime+    pret = 0.0; // aceeasi explicatie ca la vechime
 } }
 </​code>​ </​code>​
Line 458: Line 458:
 class Brad class Brad
 { {
- int vechime; +    ​int vechime; 
- float inaltime; +    float inaltime; 
- double pret;+    double pret;
  
 public: public:
  
- Brad(); // constructor default+    ​Brad(); // constructor default
  
- 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); // constructor cu 3 parametri+    ​Brad(const int& vechime, const float& inaltime, const double& pret); // constructor cu 3 parametri
 }; };
  
Line 474: Line 474:
 Brad::​Brad() Brad::​Brad()
 { {
- vechime = 0; // nu este nevoie de this, dar nu este gresit nici daca scriem this->​vechime = 0; +    ​vechime = 0; // nu este nevoie de this, dar nu este gresit nici daca scriem this->​vechime = 0; 
- inaltime = 0.0f; +    inaltime = 0.0f; 
- pret = 0.0;+    pret = 0.0;
 } }
  
Line 482: Line 482:
 Brad::​Brad(const float& inaltime) Brad::​Brad(const float& inaltime)
 { {
- vechime = 0; +    ​vechime = 0; 
- this->​inaltime = inaltime; +    this->​inaltime = inaltime; 
- pret = 0.0;+    pret = 0.0;
 } }
  
Line 490: Line 490:
 Brad::​Brad(const int& vechime, const float& inaltime, const double& pret) Brad::​Brad(const int& vechime, const float& inaltime, const double& pret)
 { {
- this->​pret = pret; +    ​this->​pret = pret; 
- this->​vechime = vechime; +    this->​vechime = vechime; 
- this->​inaltime = inaltime;+    this->​inaltime = inaltime;
 } }
  
 int main() int main()
 { {
- Brad brad; // se apeleaza constructorul default +    ​Brad brad; // se apeleaza constructorul default 
- Brad bradut(4.75f);​ // se apeleaza constructorul cu un parametru (echivalent cu a scrie Brad bradut = Brad(4.75f);​) +    Brad bradut(4.75f);​ // se apeleaza constructorul cu un parametru (echivalent cu a scrie Brad bradut = Brad(4.75f);​) 
- Brad b(2, 2.25f, 399.99); // se apeleaza constructorul cu un parametru (echivalent cu a scrie Brad b = Brad(2, 2.25f, 399.99);)+    Brad b(2, 2.25f, 399.99); // se apeleaza constructorul cu un parametru (echivalent cu a scrie Brad b = Brad(2, 2.25f, 399.99);)
  
- return 0;+    ​return 0;
 } }
 </​code>​ </​code>​
Line 516: Line 516:
 class Brad class Brad
 { {
- int vechime; +    ​int vechime; 
- float inaltime; +    float inaltime; 
- double pret;+    double pret;
  
 public: public:
  
- Brad(); +    ​Brad(); 
- Brad(const int& vechime, const float& inaltime, const double& pret);+    Brad(const int& vechime, const float& inaltime, const double& pret);
  
- int getVechime() const; // metoda la compilare arata asa: int getVechime(const Brad* this); +    ​int getVechime() const; // metoda la compilare arata asa: int getVechime(const Brad* this); 
- float getInaltime() const; +    float getInaltime() const; 
- double getPret() const;+    double getPret() const;
  
- void setVechime(const int& vechime); // metoda la compilare arata asa: void setVechime(Brad* this, const int& vechime); +    ​void setVechime(const int& vechime); // metoda la compilare arata asa: void setVechime(Brad* this, const int& vechime); 
- void setInaltime(const float& inaltime);​ +    void setInaltime(const float& inaltime);​ 
- void setPret(const double& pret);+    void setPret(const double& pret);
 }; };
 </​code>​ </​code>​
Line 540: Line 540:
 Brad::​Brad() Brad::​Brad()
 { {
- vechime = 0; +    ​vechime = 0; 
- inaltime = 0.0f; +    inaltime = 0.0f; 
- pret = 0.0;+    pret = 0.0;
 } }
  
 Brad::​Brad(const int& vechime, const float& inaltime, const double& pret) Brad::​Brad(const int& vechime, const float& inaltime, const double& pret)
 { {
- this->​pret = pret; +    ​this->​pret = pret; 
- this->​vechime = vechime; +    this->​vechime = vechime; 
- this->​inaltime = inaltime;+    this->​inaltime = inaltime;
 } }
  
 int Brad::​getVechime() const // acest const este adresat pointerului this (continutul de la adresa spre care pointeaza nu poate fi modificat) int Brad::​getVechime() const // acest const este adresat pointerului this (continutul de la adresa spre care pointeaza nu poate fi modificat)
 { {
- // this->​vechime = 5; // imposibil din cauza const-ului din semnatura functiei+    ​// this->​vechime = 5; // imposibil din cauza const-ului din semnatura functiei
  
- return vechime; // era corect si daca scriam return this->​vechime;​+    ​return vechime; // era corect si daca scriam return this->​vechime;​
 } }
  
 float Brad::​getInaltime() const float Brad::​getInaltime() const
 { {
- return inaltime;+    ​return inaltime;
 } }
  
 void Brad::​setVechime(const int& vechime) void Brad::​setVechime(const int& vechime)
 { {
- if (vechime <= 0) // verificam daca valoarea primita ca parametru este una valida +    ​if (vechime <= 0) // verificam daca valoarea primita ca parametru este una valida 
-+    
- return; +        return; 
- }+    }
  
- this->​vechime = vechime; // trebuie folosit this deoarece parametrul are acelasi nume ca si campul clasei+    ​this->​vechime = vechime; // trebuie folosit this deoarece parametrul are acelasi nume ca si campul clasei
 } }
  
 void Brad::​setInaltime(const float& inaltime) void Brad::​setInaltime(const float& inaltime)
 { {
- if (inaltime <= 0) +    ​if (inaltime <= 0) 
-+    
- return; +        return; 
- }+    }
  
- this->​inaltime = inaltime;+    ​this->​inaltime = inaltime;
 } }
  
 int main() int main()
 { {
- Brad brad; // se apeleaza constructorul default+    ​Brad brad; // se apeleaza constructorul default
  
- brad.setVechime(3);​ +    ​brad.setVechime(3);​ 
- brad.setInaltime(5.5f);​+    brad.setInaltime(5.5f);​
  
- std::cout << "​Vechimea bradului este: " << brad.getVechime() << " ani\n";​ +    ​std::cout << "​Vechimea bradului este: " << brad.getVechime() << " ani\n";​ 
- std::cout << "​Inaltimea bradului este: " << brad.getInaltime() << " metri\n";​+    std::cout << "​Inaltimea bradului este: " << brad.getInaltime() << " metri\n";​
  
- return 0;+    ​return 0;
 } }
 </​code>​ </​code>​
poo-is-ab/laboratoare/03.txt · Last modified: 2025/10/11 16:16 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