Die virtuelle Methode hat keine direkte Umsetzung und sein Verhalten wird durch das Verfahren mit der gleichen Signatur , die auf der untersten Ebene der Vererbung instanziiert Objekt bestimmt. Ein Destruktor wird automatisch aufgerufen, wenn das Objekt zerstört wird . Ein virtueller Destruktor in C + + ist in erster Linie , um Ressourcen-Lecks durch Ausführen eines sauberen -up des Objekts zu verhindern. Die folgenden Schritte erklären, wie man virtuelle Destruktoren in C + + verwenden . Anleitung
1
bestimmen, wann ein virtuelles destructor verwenden . Ein Destruktor für eine Klasse sein sollten virtuelle , wenn ein Objekt einer abgeleiteten Klasse durch Aufrufen der Basisklasse destructor zerstört werden. Der Destruktor muss virtuell sein , wenn Sie einen Zeiger auf ein Objekt zu löschen , und es ist möglich, dass es zu einer abgeleiteten Klasse zeigt.
2
Lernen einen wichtigen Unterschied zwischen einem destructor und andere Mitglied Methoden . In beiden Fällen ist das Verfahren der abgeleiteten Klasse aufgerufen wird, wenn es angewendet wird. Allerdings ist die Basisklasse destructor wird anschließend aufgerufen Erwägung, dass diese nicht mit anderen Methoden geschehen
3
Betrachten Sie das folgende Beispiel eines virtuellen Destruktor : .
# Include class base_class {public: base_class () { cout //virtual-Schlüsselwort ist erforderlich herevirtual ~ base_class () { cout }; Klasse derived_class : public base_class {public: derived_class () { cout ~ derived_class () { cout }; void main () { base_class * p = new derived_class (); delete p; }
4
beachten Sie die Verwendung des virtuellen Schlüsselwort in dem Beispiel in Schritt 3 . Wenn der Destruktor der Basisklasse nicht als virtual deklariert , würde der Destruktor der abgeleiteten Klasse nicht aufgerufen. Bekommen
5
Implementieren mindestens eine leere Stelle für einen virtuellen Destruktor da eine rein virtuelle Funktion kann nicht erklärt werden.