virtual dtor
-
Hi,..
wollte bloß mal fragen ob ich dass richtig gecheckt habe. einen vrituellen Dtor
brauch man um den fall zu vermeiden das der Dtor der basisklasse vor dem Dtor
der Inherit klasse aufgerufen, und somit der Dtor der abgeleiteten Klasse nicht
mehr aufgerufen wird?Oder gibt es noch andere gründe?
Greetz
class Base { public: Base() { std::cout<<"Base Ctor\r\n"; }; /* virtual*/ ~Base() { std::cout<<"Base Dtor\r\n";}; }; class Derived: public Base { public: Derived() { std::cout<<"Derived Ctor\r\n";}; ~Derived() {std::cout<<"Derived Dtor\r\n";}; }; void kill_the_shit(Base *b) { delete b; }; int _tmain(int argc, _TCHAR* argv[]) { Derived *blub=new Derived; kill_the_shit(blub); system("pause"); return 0; }
-
Der hat den gleichen Sinn, wie bei anderen Funktionen auch, ja.
Ein virtueller Destruktor ermöglicht es dir einfach über einen Zeiger auf die Basisklasse auch das abgeleitete Objekt zu zerstören.
-
also hatte ich es doch richtig im sinn,..
thx a lot
