[ Fidelito_Castro @ 29.04.2008. 23:26 ] @
Pozdrav svima! Imam dva pitanja u vezi sa unistavanjem(dealokacijom) dinamickih objekata. 1)Da li kompajler obezbedjuje podrazumevani destruktor kod unistavanja dinamickih objekata,odnosno da li se destruktor za dinamicke objekte poziva tek nakon primene C++ -ovog unarnog operatora delete ? 2)Da li alociran prostor u heap segmentu memorije se unistava nakon izlaza iz programa?(pretpostavljam da to unistava OS?) Unapred zahvalan i svako dobro! Evo i jednog primera: Code: #include <iostream> #include <string> using namespace std; //definicija klase Primer class Primer { protected: string name; public: Primer(string ime):name(ime) {cout<<"Konstruktor Primer"<<endl;} virtual ~Primer(){cout<<"Destruktor Primer"<<endl;} virtual string Tekst(){return name;} }; //Javno izvedena klasa Primer2 class Primer2 : public Primer { protected: string surname; public: Primer2(string prez):Primer("Primer2"),surname(prez) {cout<<"Konstruktor Primer2"<<endl;} ~Primer2(){cout<<"Destruktor Primer2"<<endl;} string Tekst(){return surname;} }; int main() { Primer* p_objekat = new Primer2("Petrovic"); cout<<endl; //Ispisuje da je destruktor izvrsen tek nakon naredbe //delete p_objekat; ??? system("PAUSE"); return 0; } |