Sobes.tech
Назад к вопросам
Junior — Middle
81

Имели ли вы опыт использования виртуальных деструкторов в своих проектах

Компании, где спрашивали
Samsung Research CenterSamsung Research Center

Ответ от нейросети

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()
}

В моих проектах я использовал виртуальные деструкторы для корректного управления памятью и ресурсами в иерархиях классов, чтобы избежать утечек и неопределенного поведения.