有没有办法在operator new中分配对象类型?
我的意思是:
void* BaseClass::operator new(size_t size)
{
void* result = ::operator new(size);
//Get type of object that's being allocated
return result;
}
答案 0 :(得分:2)
没有获取此数据的机制。 operator new
只是根据大小分配原始内存,只有new
运算符调用知道将对象构造到已分配内存中的类型。
答案 1 :(得分:1)
不,你不能这样做。即使您没有将其定义为operator new,它也是隐式的静态函数。由于它是一个静态函数,你不能在this
指针上使用typeid来获取对象的类型。