Почему наследование класса с невиртуальным деструктором не очень хорошо, даже если производный класс не добавляет членов? - PullRequest
0 голосов
/ 05 мая 2020

В этот ответ ответ:

В частности, вам не разрешено удалять std::vector<T>*, который фактически указывает на производный объект (даже если производный класс добавляет нет членов), но компилятор обычно не может вас предупредить об этом.

Я понимаю, что виртуальный деструктор необходим, если объект будет удален с помощью базового указателя. Это позволяет каждому классу уничтожать своих членов (по крайней мере, я так думаю). Но если класс сам по себе не имеет никаких членов, то почему его не следует удалять с помощью базового указателя? типа а не с одной из баз? Будет ли нормальным наследование от класса с не виртуальным деструктором?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...