C ++中new和operator new之间的区别

时间:2011-03-16 19:09:07

标签: c++

  

可能重复:
  Difference between 'new operator' and 'operator new'?

使用new和operator new有什么区别?
我刚才读到某个地方,运算符new的行为类似于malloc(没有构造函数)。它是否正确?如果是这样,有人可以在示例中显示我,当尝试使用“operator new”分配对象时,它会给我错误 感谢。

2 个答案:

答案 0 :(得分:2)

operator new是最低级别的分配机制。实际对象应该用new分配,它告诉C ++实际创建对象并设置所有必要的管道(超类信息,vtable等),否则它不能 < / em>一个对象。

答案 1 :(得分:2)

  • operator new不会调用类T的构造函数,并返回void*,而不是T*
  • new在内部调用operator new,然后调用类T的构造函数在已分配的内存中构造对象,然后返回T*