Junior — Middle
Hai esperienza nell'uso di distruttori virtuali nei tuoi progetti?
sobes.tech AI
Risposta dell'AI
I distruttori virtuali in C++ vengono utilizzati per liberare correttamente le risorse durante l'eliminazione di oggetti tramite un puntatore alla classe base. Se la classe ha funzioni virtuali e si prevede l'ereditarietà, il distruttore deve essere virtuale affinché, chiamando delete tramite il puntatore base, venga chiamato il distruttore della classe derivata.
Esempio:
class Base {
public:
virtual ~Base() { std::cout << "Distruttore di Base" << std::endl; }
};
class Derived : public Base {
public:
~Derived() override { std::cout << "Distruttore di Derived" << std::endl; }
};
int main() {
Base* obj = new Derived();
delete obj; // chiamerà Derived::~Derived() e poi Base::~Base()
}
Nei miei progetti, ho usato distruttori virtuali per gestire correttamente memoria e risorse nelle gerarchie di classi, per evitare perdite e comportamenti indefiniti.