Descriere: Un tutorial folositor pentru cei care lucreaza in limbajul de programare C++
Download: -
Autor: Nu este specificat
Sursa (Link-ul oficial):
Propria parere: Folositor
Tutorialul: Mai jos .
In problema apelului destructorilor claselor incuibarite se impun doua observatii, pe care le vom discuta pe exemplul ce urmeaza.
Code: Select all
class baza {
class incuib1 ob1;
class incuib2 ob2;
// ...
public:
// ...
~baza(void);
} ob0;
a. Apelul destructorilor obiectelor "ob1" si "ob2" se va face doar DUPA executia destructorului "~baza".
b. In cazul in care se prefera ca in loc de obiecte incuibarite sa se foloseasca membrii de tipul "pointer la obiect" (incuibarire indirecta), v fi necesara atat alocarea dinamica, cat si eliberarea EXPLICITA a memoriei necesare pentru obiectele la care vor pointa membrii in cauza. De obicei astfel de actiuni au loc in cadrul constructorului, respectiv destructorului clasei "cuib".
Erori deosebite.
Un prim caz care se cere studiat cu atentie este cel din exemplul de mai jos:
Exemplu:
Code: Select all
class ex {
double * pNumar;
public:
ex(double);
~ex();
};
ex::ex(double nr) {
pNumar=new double;
*pNumar=nr;
}
ex::~ex(void) {
// ...
delete pNumar;
}
Code: Select all
void main(void) {
ex b1(10.66);
ex b2=b1; // 1
ex b3(20.101);
b1=b2=b3; // 2
}