Назад к вопросам
Samsung Research Center
Junior — Middle
81
Имели ли вы опыт использования виртуальных деструкторов в своих проектах
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Виртуальные деструкторы в C++ используются для правильного освобождения ресурсов при удалении объектов через указатель на базовый класс. Если в классе есть виртуальные функции и предполагается наследование, деструктор должен быть виртуальным, чтобы при вызове delete через базовый указатель вызвался деструктор производного класса.
Пример:
class Base {
public:
virtual ~Base() { std::cout << "Base destructor" << std::endl; }
};
class Derived : public Base {
public:
~Derived() override { std::cout << "Derived destructor" << std::endl; }
};
int main() {
Base* obj = new Derived();
delete obj; // вызовется Derived::~Derived() и затем Base::~Base()
}
В моих проектах я использовал виртуальные деструкторы для корректного управления памятью и ресурсами в иерархиях классов, чтобы избежать утечек и неопределенного поведения.