Junior — Middle
Tem experiência no uso de destrutores virtuais nos seus projetos?
sobes.tech IA
Resposta da IA
Destructores virtuais em C++ são usados para liberar corretamente os recursos ao eliminar objetos através de um ponteiro para a classe base. Se a classe tiver funções virtuais e se esperar herança, o destrutor deve ser virtual para que, ao chamar delete através do ponteiro base, o destrutor da classe derivada seja chamado.
Exemplo:
class Base {
public:
virtual ~Base() { std::cout << "Destruidor de Base" << std::endl; }
};
class Derived : public Base {
public:
~Derived() override { std::cout << "Destruidor de Derived" << std::endl; }
};
int main() {
Base* obj = new Derived();
delete obj; // chamará Derived::~Derived() e depois Base::~Base()
}
Nos meus projetos, usei destructores virtuais para gerenciar corretamente a memória e recursos em hierarquias de classes, para evitar vazamentos e comportamentos indefinidos.