1
我对智能指针和内存分配有困惑。智能指针和自定义内存分配困境
在我的智能指针类中,我通过引擎中的内存模块拥有自己的分配内存方式。
template <class T>
class Object
{
public:
inline Object()
{
Init();
if (mEngine)
{
mObj = (T*) mEngine->GetMemoryManager()->Allocate(sizeof(T));
mRefCount = 1;
}
}
现在,当我想我Destroy()
发动机,我希望所有的内存释放为好。这首先是因为我想清理与我的引擎相关的所有内存,并且因为清理mObj
依赖于我的内存管理器,因为它可能使用内存池来分配/释放内存,并删除内存管理器将导致到不可分配的内存。
那么,我用智能指针拍摄自己的脚?有没有一个聪明的方法来解决这个问题?
也许一个演示问题的独立程序会很有帮助。 – 2012-03-05 21:52:24