使用new和operator new有什么区别?
我刚才读到某个地方,运算符new的行为类似于malloc(没有构造函数)。它是否正确?如果是这样,有人可以在示例中显示我,当尝试使用“operator new”分配对象时,它会给我错误
感谢。
答案 0 :(得分:2)
operator new
是最低级别的分配机制。实际对象应该用new
分配,它告诉C ++实际创建对象并设置所有必要的管道(超类信息,vtable等),否则它不能 < / em>一个对象。
答案 1 :(得分:2)
operator new
不会调用类T
的构造函数,并返回void*
,而不是T*
。new
在内部调用operator new
,然后调用类T
的构造函数在已分配的内存中构造对象,然后返回T*
。