3

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

我的意思是:

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

    //Get type of object that's being allocated

    return result;
}
4

2 回答 2

2

没有获取这些数据的机制。operator new只是分配给定大小的原始内存,并且只有new操作员调用知道将对象构造到分配的内存中的类型。

于 2012-12-28T18:23:08.540 回答
1

不,你不能这样做。运算符 new 隐含地是一个静态函数,即使您没有这样定义它。因为它是一个静态函数,所以你不能做一些事情,比如在this指针上使用 typeid 来获取对象的类型。

于 2012-12-28T18:12:24.320 回答