获取在operator new中分配的对象类型

时间:2012-12-28 17:57:01

标签: c++ object memory-management

有没有办法在operator new中分配对象类型?

我的意思是:

void* BaseClass::operator new(size_t size)
{
    void* result = ::operator new(size);

    //Get type of object that's being allocated

    return result;
}

2 个答案:

答案 0 :(得分:2)

没有获取此数据的机制。 operator new只是根据大小分配原始内存,只有new运算符调用知道将对象构造到已分配内存中的类型。

答案 1 :(得分:1)

不,你不能这样做。即使您没有将其定义为operator new,它也是隐式的静态函数。由于它是一个静态函数,你不能在this指针上使用typeid来获取对象的类型。