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