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:
#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;
}