【发布时间】:2014-02-17 22:32:32
【问题描述】:
所以我编写了自己的内存管理类。
本质上,它通过 malloc 分配一大块内存,然后根据请求将内存交给程序中的请求者 (as you would expect。)
我还实现了templated 分配和释放函数,它们基于templatized 类显式调用构造函数和destructor。
您可能已经意识到,当我尝试通过基指针删除时,问题是什么?
templated 函数获取基类的类型,因此调用基类的虚拟destructor,而不是正确的派生destructor。
碰巧没有放置删除或任何功能类似于常规“删除”命令但不尝试deallocate内存的东西?
【问题讨论】:
-
您的基类中似乎没有重载 new/delete
-
也许可以看看这篇 SO 帖子 stackoverflow.com/questions/461203/…
标签: c++ memory-management destructor