Tecnología

Inicio

Cómo utilizar C ++ destructores virtuales

Un método virtual no tiene aplicación directa y su comportamiento se determinó por el método con la misma firma que se encuentra en el nivel más bajo de la herencia objeto instanciado. Un destructor se invoca automáticamente cuando el objeto es destruido. Un destructor virtual en C ++ se utiliza principalmente para evitar pérdidas de recursos mediante la realización de una limpieza del objeto. Los siguientes pasos explican cómo utilizar destructores virtuales en C ++.

Instrucciones

1 Determinar cuándo utilizar un destructor virtual. Un destructor de una 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 Aprender una diferencia importante entre un destructor y otros métodos miembros. En ambos casos, el método de la clase derivada se invoca si se aplica. Sin embargo, el destructor de la clase base se denomina posteriormente mientras que esto no ocurre con otros métodos.

3 Considere el siguiente ejemplo de un destructor virtual:

incluir

clase BASE_CLASS
{

public:
Base_class(){ cout<<"Constructor: Base_class"<<endl;}
// virtual keyword is needed here
virtual ~ Base_class(){ cout<<"Destructor : Base_class"<<endl;}

};
clase Derived_Class: BASE_CLASS pública
{Public:

Derived_class(){ cout<<"Constructor: Derived_class"<<endl;}
~ Derived_class(){ cout<<"Destructor : Derived_class"<<endl;}

};
vacío principal()
{

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 han declarado como virtual, el destructor de la clase derivada no se llamará.

5 Implementar al menos un cuerpo vacío de un destructor virtual desde una función virtual pura no puede ser declarada.