Sobes.tech
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.