Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Destruktor nad dinamickim objektima?

[es] :: C++ programiranje :: C++ za početnike :: Destruktor nad dinamickim objektima?

[ Pregleda: 123 | Odgovora: 3 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Fidelito_Castro
Cik pogodi
Tamo daleko...

Član broj: 143557
Poruke: 62
*.eunet.yu.



Profil

icon Destruktor nad dinamickim objektima?pre 14 dana i 3h

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

29.04.2008. u 23:26 

karas

Član broj: 5574
Poruke: 320
*.dynamic.sbb.rs.



Profil

icon Re: Destruktor nad dinamickim objektima?pre 14 dana i 2h
1) Destruktor se poziva kada se objekat uništava, jedan od slučajeva je kada se poziva delete.
2) Da.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
30.04.2008. u 00:01 

Fidelito_Castro
Cik pogodi
Tamo daleko...

Član broj: 143557
Poruke: 62
*.eunet.yu.



Profil

icon Re: Destruktor nad dinamickim objektima?pre 14 dana i 2h
Hvala na brzom odgovoru.
Inace rezumeo sam da se destruktor izvrsava za unistavanje objekata tipa klasa.Mene interesuje da li se destruktor
za objekte kreirane u dinamickoj zoni memorije iskljucivo izvrsava pozivom operatora delete?
30.04.2008. u 00:11 

karas

Član broj: 5574
Poruke: 320
*.dynamic.sbb.rs.



Profil

icon Re: Destruktor nad dinamickim objektima?pre 13 dana i 21h
Da, objekat na heap-u se stvara sa new (odgovarajući konstruktor se poziva) i uništava sa delete (poziva se destruktor).

Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
30.04.2008. u 04:59 

[es] :: C++ programiranje :: C++ za početnike :: Destruktor nad dinamickim objektima?

[ Pregleda: 123 | Odgovora: 3 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.