Ваш базовый класс не является полиморфным, поэтому иметь указатель на базу в любом случае будет мало смысла.Ваш базовый класс документирует тот факт, что он не полиморфен, поскольку нигде не используется ключевое слово virtual
.
Если кто-то хочет использовать его в качестве базового класса для полиморфной иерархии, он может добавить деструктор virtual
.к первому классу они наследуются и, при необходимости, содержат указатели на этот тип базового класса.
Вы не можете помешать программистам, которые приходят позже, копать свои собственные ловушки, но нет ничего плохого в том, чтополиморфный класс, и вам не нужно ничего с ним делать, чтобы «сделать его безопасным».
В качестве доказательства того, что это обычная и приемлемая практика, вам достаточно взглянуть на стандартную библиотеку.Существует много классов (строго говоря, большинство из них являются шаблонами классов) без виртуальных функций и виртуального деструктора.