Класс не может вести себя полиморфно для удаления производных объектов классов
Этот дефект возникает, когда класс имеет virtual функции, но не virtual деструктор.
Наличие virtual functions указывает, что класс предназначен для использования в качестве базового класса. Однако, если класс не имеет virtual destructor, он не может вести себя полиморфно для удаления производных объектов классов.
Если указатель на этот класс ссылается на производный объект класса, и вы используете указатель для удаления объекта, вызывается только деструктор базового класса. Дополнительные ресурсы, выделенные в производном классе, не освобождаются и могут вызвать утечку ресурсов.
Одно из возможных исправлений - всегда использовать virtual деструктор в классе, который содержит virtual функций.
| Группа: Объектно-ориентированная |
| Язык: C++ |
| По умолчанию: On для рукописного кода, off для сгенерированного кода |
Синтаксис командной строки: DTOR_NOT_VIRTUAL |
| Влияние: Средний |