Итак, я написал свой собственный класс управления памятью.C++ явный вызов деструктора через базовый указатель
По существу, он выделяет большой блок памяти через таНос, то по запросу он сдает памяти в запрашивающей в программе (as you would expect
.)
Я также осуществил templated
распределение и свободные функции, которые явно вызывает конструктор и destructor
на основе класса templatized
.
Проблема, как вы уже поняли, это о том, когда я пытаюсь удалить с помощью базового указателя?
Функция templated
выбирает тип базового класса, и, таким образом, вызывается базовый виртуальный destructor
, а не правильный вывод destructor
.
Возможно, не удалено место размещения или что-либо, что будет функционировать как обычная команда «удалить», но не попытка deallocate
памяти?
Казалось у вас нет перегрузки новых/удаления в вашем базовом классе –
Показать код. –
, возможно, взгляните на это сообщение SO http://stackoverflow.com/questions/461203/when-to-use-virtual-destructors –