virtueller Destruktor
-
Hallo!
Scott Meyers schreibt in seinem Buch, dass Basisklassen immer einen virtuellen Destruktor haben müssen. Erklärungen etc. finde ich einleuchtend. Gilt dies auch für abgeleitete Klassen, die nicht weiter als Basisklasse dienen oder braucht hier nicht explizit ein (virtueller) Destruktor angegeben werden?
-
Einmal virtuell, immer virtuell. Wenn eine abgeleitete Klasse im Destruktor nichts tun muss, brauchst du in auch nicht deklarieren oder implementieren.
-
manni66 schrieb:
Einmal virtuell, immer virtuell.
Heißt das, dass die "Virtualität" ebenfalls vererbt wird auch in folgendem Fall?
class Basis { public: virtual ~Basis() {} }; class Foo : public Basis { public: ~Foo() {} };Ist der Destruktor von Foo auch virtuell?
-
Laura_M schrieb:
Heißt das, dass die "Virtualität" ebenfalls vererbt wird auch in folgendem Fall?
Exakt. Ja.
-
Alles klar, Danke.