Middle
71
questionbank

Зачем нужен виртуальный деструктор в C++?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

При удалении объекта базового класса через указатель на базовый класс, который фактически указывает на объект производного класса, виртуальный деструктор гарантирует вызов деструктора производного класса перед вызовом деструктора базового класса. Это необходимо для корректного освобождения ресурсов, выделенных производным классом. Если деструктор базового класса не виртуальный, будет вызван только деструктор базового класса, что приведет к утечке ресурсов.

c

Без виртуального деструктора вывод был бы таким:

plaintext

При наличии виртуального деструктора вывод:

plaintext