Un método virtual no tiene aplicación directa y su comportamiento está determinado por el método con la misma firma que se encuentra en el nivel más bajo de herencia del objeto instanciado . Un destructor se llama automáticamente cuando se destruye el objeto. Un destructor virtual en C + + se utiliza principalmente para evitar las fugas de recursos mediante la realización de una limpieza del objeto. Los siguientes pasos se explica cómo utilizar los destructores virtuales en C + + . Instrucciones
1
Determinar cuándo utilizar un destructor virtual. Un destructor de la clase debe ser virtual cuando un objeto de una clase derivada será destruida mediante la invocación del destructor de la clase base. El destructor debe ser virtual cuando se elimina un puntero a un objeto y es posible que apunte a una clase derivada .
2
Obtenga una diferencia importante entre un destructor y otros métodos miembros. En ambos casos , se invoca el método de la clase derivada si se aplica . Sin embargo, el destructor de la clase base se llama posteriormente , mientras que esto no ocurre con otros métodos
3
Consideremos el siguiente ejemplo de un destructor virtual : .
# Include Base_class clase {public : Base_class () { cout /es necesaria /palabra clave virtual herevirtual ~ Base_class () { cout } ; Derived_class clase : Base_class pública {public : Derived_class () { cout ~ Derived_class () { cout } ; void main () { Base_class * p = new Derived_class (); delete p ;}
4
Observe el uso de la palabra clave virtual en el ejemplo en el paso 3 . Si el destructor de la clase base no se declara como virtual, el destructor de la clase derivada no podría ser llamado .
5
implementar al menos un cuerpo vacío de un destructor virtual desde una función virtual pura no puede ser declarado .