通过基指针的 C++ 显式析构函数调用

标签 c++ memory-management destructor

所以我编写了自己的内存管理类。

本质上,它通过 malloc 分配一大块内存,然后根据请求将内存移交给程序中的请求者(如您所料。)

我还实现了模板化 分配和自由函数,它们显式调用了基于模板化 类的构造函数和析构函数

正如您可能已经意识到的那样,问题是当我尝试通过基指针进行删除时会怎样?

templated 函数获取基类的类型,因此调用基类的虚拟析构函数,而不是正确的派生析构函数

不会发生位置删除或任何功能类似于常规“删除”命令但不尝试解除分配内存的操作吗?

最佳答案

你只想调用析构函数,比如:

myObjPtr->~MyClass()

关于通过基指针的 C++ 显式析构函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21374891/

相关文章:

c++ - 位和字节填充

c++ - 按下键时窗口停止刷新

c++ - 将二进制读入十六进制字节数组

go - 在 Golang 中返回一个新的 Struct 实例

C++ - 使用 std::vector 和相关内存管理的正确方法

c++ - 当销毁包含该线程的对象时,线程在自身上调用 thread.detach()

c++ - 接受类型对象和所有派生类型对象的模板函数

c - 有没有办法告诉C永远不要动态分配内存?

c++ - 为什么我们需要 C++ 中的纯虚拟析构函数?

c++ - 涉及类和结构的构造函数/析构函数