我有一个类,在其中我重载了new和delete函数(它们从内存池中获取和返回内存)。让我困扰的是,即使我已经在这个类上进行了重载,它的析构函数仍然在delete被重载的函数调用之前被调用。我该如何阻止这种情况发生?
class Message
{
~Message() { ... }
void* operator new(std::size_t sz) { ... }
void operator delete(void* ptr) { ... }
};
编辑:
我是否正确地认为类的成员将被销毁,但析构函数不会释放内存;delete函数负责这个责任,因此我可以阻止内存被释放?
结果:我现在明白了内存的分配/释放和构造/析构是两个不同的事情。现在我有了空的析构函数和重载的new/delete。