Une méthode virtuelle n'a pas d'implémentation directe et son comportement est déterminé par la méthode avec la même signature que c'est au niveau de l' héritage le plus bas de l' objet instancié . Un destructeur est automatiquement appelée lorsque l'objet est détruit . Un destructeur virtuel en C + + est utilisé principalement pour empêcher les fuites de ressources en effectuant un nettoyage de l'objet. Les étapes suivantes expliquent comment utiliser les destructeurs virtuels en C + + . Instructions
1
Déterminer quand utiliser un destructeur virtuel . Un destructeur pour une classe doit être virtuel lorsqu'un objet d'une classe dérivée sera détruite en invoquant le destructeur de classe de base . Le destructeur doit être virtuel lorsque vous supprimez un pointeur vers un objet et il est possible qu'il pointe vers une classe dérivée.
2
savoir une différence importante entre un destructeur et d'autres méthodes de membres. Dans les deux cas , la méthode de la classe dérivée est appelée , si elle est mise en œuvre . Toutefois, le destructeur de la classe de base est appelé par la suite alors que ce n'est pas le cas avec d'autres méthodes
3
Prenons l'exemple suivant d'un destructeur virtuel : .
# Include Base_class de classe {public: Base_class () {cout //mot virtuel est nécessaire herevirtual ~ Base_class () {cout }; Derived_class classe: Base_class {public : Derived_class () {cout ~ Derived_class () {cout }; void main () { Base_class * p = new Derived_class (); delete p ;}
4
Respecter l'utilisation du mot clé virtual dans l'exemple à l'étape 3 . Si le destructeur de la classe de base n'a pas été déclarée comme virtuelle, le destructeur de la classe dérivée serait pas appelée .
5
en œuvre au moins un corps vide pour un destructeur virtuel depuis une fonction virtuelle pure ne peut pas être déclaré .