operator delete - 如何实现?

Ado*_*orn 5 c++ memory-management new-operator delete-operator

我知道在正常情况下如何处理内存解除分配.我的情况略有不同.

我正在实现自己的内存池.我希望我班级的客户能够接近分配和解除分配的一般方法.

inline void* operator new(size_t dead_param, CPool&  objPool)
{
    return objPool.Allocate();
}
Run Code Online (Sandbox Code Playgroud)

我有这个全局函数,所以我班级的用户可以简单地调用

Base baseObj = new (poolObj)Base2();

现在我不知道如何调用析构函数?我清楚没有想法

虽然我有全局运算符删除

inline void operator delete(void* ptr, CPool& objPool)
{
    objPool.DeAllocate(ptr);
}
Run Code Online (Sandbox Code Playgroud)

请指导..如何从客户端代码中调用此函数?用户端语法的变化很小.另外请注意,我不希望我的代码的用户实施operator newoperator delete并呼吁AllocateDeAllocate从那里.