Junior — Middle
¿Tiene experiencia en el uso de destructores virtuales en sus proyectos?
sobes.tech AI
Respuesta de la IA
Los destructores virtuales en C++ se utilizan para liberar correctamente los recursos al eliminar objetos a través de un puntero a la clase base. Si la clase tiene funciones virtuales y se espera herencia, el destructor debe ser virtual para que al llamar a delete a través del puntero base, se llame al destructor de la clase derivada.
Ejemplo:
class Base {
public:
virtual ~Base() { std::cout << "Destructor de Base" << std::endl; }
};
class Derived : public Base {
public:
~Derived() override { std::cout << "Destructor de Derived" << std::endl; }
};
int main() {
Base* obj = new Derived();
delete obj; // se llamará a Derived::~Derived() y luego a Base::~Base()
}
En mis proyectos, he utilizado destructores virtuales para gestionar correctamente la memoria y los recursos en jerarquías de clases, para evitar fugas y comportamientos indefinidos.