所以我编写了自己的内存管理类。
本质上,它通过 malloc 分配一大块内存,然后根据请求将内存移交给程序中的请求者(如您所料
。)
我还实现了模板化
分配和自由函数,它们显式调用了基于模板化
类的构造函数和析构函数
。
正如您可能已经意识到的那样,问题是当我尝试通过基指针进行删除时会怎样?
templated
函数获取基类的类型,因此调用基类的虚拟析构函数
,而不是正确的派生析构函数
。
不会发生位置删除或任何功能类似于常规“删除”命令但不尝试解除分配
内存的操作吗?
最佳答案
你只想调用析构函数,比如:
myObjPtr->~MyClass()
关于通过基指针的 C++ 显式析构函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21374891/