Avatar ·

Quand faut-il utiliser les destructeurs virtuels en C++ ?

Bonjour à tous ! Je suis un développeur C++ débutant, et une question me taraude. Je viens de commencer à me familiariser avec le polymorphisme et l'héritage, et je suis tombé sur cette situation. Supposons que j'ai une classe de base `Animal` et une classe dérivée `Dog`. Je veux utiliser des pointeurs intelligents (shared_ptr) pour la gestion automatique de la mémoire. Le code ressemble à ceci : ```cpp #include #include class Animal { public: Animal() { std::cout << "Animal created\n"; } ~Animal() { std::cout << "Animal destroyed\n"; } virtual void speak() { std::cout << "Animal sound\n"; } }; class Dog : public Animal { public: Dog() { std::cout << "Dog created\n"; } ~Dog() { std::cout << "Dog destroyed\n"; } void speak() override { std::cout << "Woof!\n"; } }; int main(