Junior — Middle
102
Spiega lo scopo del distruttore virtuale nel contesto della programmazione orientata agli oggetti.
Le aziende dove è stato chiesto
Risposta dell'AI
sobes.tech AI
Виртуальный деструктор в C++ используется для корректного освобождения ресурсов при удалении объекта через указатель на базовый класс. Если базовый класс имеет виртуальный деструктор, то при вызове delete через указатель на базовый класс будет вызван деструктор производного класса, что гарантирует правильное разрушение объекта и предотвращает утечки памяти.
Пример:
class Base {
public:
virtual ~Base() { std::cout << "Base destructor\n"; }
};
class Derived : public Base {
public:
~Derived() { std::cout << "Derived destructor\n"; }
};
int main() {
Base* obj = new Derived();
delete obj; // вызовется сначала Derived::~Derived, затем Base::~Base
}
Без виртуального деструктора вызов delete через указатель на базовый класс приведёт к вызову только базового деструктора, что может вызвать проблемы с освобождением ресурсов производного класса.