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

Virtual destruktor - zasto

[es] :: C/C++ programiranje :: C/C++ za početnike :: Virtual destruktor - zasto

[ Pregleda: 1223 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

grabber
Gorazde

Član broj: 213110
Poruke: 172
31.176.202.*



Profil

icon Virtual destruktor - zasto28.12.2011. u 14:41 - pre 149 meseci
Profesor na predavanju pomenu da je praksa destruktor kod bazne klase naznaciti kao virtual metod, ali nije objasnio zasto, nego da uzmemo to zdravo za gotovo. Eh sada mene zanima zasto je to tako, ako mi neko moze pojasniti na jednostavnom primjeru svrhu toga i kako bi bilo da ne naznacimo taj destruktor u baznoj klasi virtuelnim
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.dynamic.sbb.rs.



+395 Profil

icon Re: Virtual destruktor - zasto28.12.2011. u 14:46 - pre 149 meseci
Odgovor :Da bi se destruktori redom pozivali od nasledjenih klasa ka baznim .

Code:

#include iostream.h
class Base
{
       public:
          Base(){ cout<<"Constructing Base";}

     // this is a destructor:
    virtual  ~Base(){ cout<<"Destroying Base";}
    


};

class Derive: public Base
{
        public:
           Derive(){ cout<<"Constructing Derive";}

           ~Derive(){ cout<<"Destroying Derive";}
 };

void main()
{
        Base *basePtr = new Derive();
        delete basePtr;
}



Pokreni program sa i bez kljucne reci virtual za destruktor u Base klasi pa ces videti razliku .


Viva lollapalooza
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Virtual destruktor - zasto

[ Pregleda: 1223 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

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