InformaticăliceuClasa 11mediu
Constructori și Destructori în C++
Înțelege constructorii (implicit, cu parametri, de copiere) și destructorii în C++ pentru gestionarea corectă a obiectelor.
circa 2 luni în urmă
0 vizualizări
25 minute
Constructori și Destructori în C++
Ce sunt Constructorii?
Constructorii sunt metode speciale care se apelează automat la crearea unui obiect.
Tipuri de Constructori
Constructor Implicit
1class Dreptunghi { 2private: 3 int lungime, latime; 4 5public: 6 // Constructor implicit 7 Dreptunghi() { 8 lungime = 0; 9 latime = 0; 10 cout << "Constructor implicit apelat" << endl; 11 } 12};
Constructor cu Parametri
1class Dreptunghi { 2private: 3 int lungime, latime; 4 5public: 6 // Constructor cu parametri 7 Dreptunghi(int l, int L) { 8 lungime = l; 9 latime = L; 10 cout << "Constructor cu parametri apelat" << endl; 11 } 12 13 // Constructor cu parametri și valori implicite 14 Dreptunghi(int l = 1, int L = 1) : lungime(l), latime(L) {} 15};
Constructor de Copiere
1class Vector { 2private: 3 int* arr; 4 int size; 5 6public: 7 // Constructor normal 8 Vector(int n) : size(n) { 9 arr = new int[n]; 10 } 11 12 // Constructor de copiere (copiere profundă) 13 Vector(const Vector& other) : size(other.size) { 14 arr = new int[size]; 15 for (int i = 0; i < size; i++) { 16 arr[i] = other.arr[i]; 17 } 18 cout << "Constructor de copiere apelat" << endl; 19 } 20 21 // Destructor 22 ~Vector() { 23 delete[] arr; 24 cout << "Destructor apelat" << endl; 25 } 26};
Destructor
Destructorul se apelează automat când obiectul iese din scope sau este șters explicit.
1class Resursa { 2private: 3 int* data; 4 5public: 6 Resursa(int val) { 7 data = new int(val); 8 cout << "Resursa creata" << endl; 9 } 10 11 ~Resursa() { 12 delete data; 13 cout << "Resursa eliberata" << endl; 14 } 15}; 16 17int main() { 18 { 19 Resursa r(42); 20 // Destructorul se apelează automat la finalul blocului 21 } 22 cout << "Dupa bloc" << endl; 23 return 0; 24}
Lista de Inițializare
1class Persoana { 2private: 3 const string nume; 4 int& referinta; 5 6public: 7 // Obligatoriu lista de inițializare pentru const și referințe 8 Persoana(const string& n, int& ref) : nume(n), referinta(ref) {} 9};
Tutorialul te-a ajutat?
Dacă ai nevoie de ajutor personalizat, găsește un profesor calificat pentru meditații
