Также имейте в виду, что удаление указателя базового класса, когда нет виртуального деструктора, приведет к неопределенному поведению . Что-то, что я узнал совсем недавно:
Как следует переопределять удаление в C ++?
Я использую C ++ в течение многих лет, и мне все еще удается повесить я.