请问:在C++中 new 与::operate new 有何不同?

解决方案 »

  1.   

    new 里面用到了 ::operate new
      

  2.   

    没有区别,new 等价为 ::operate new,
    new is one of operation.
      

  3.   

    不完全正确,
    operation new可以在类中重载,继承而::new 是c++standard是的new
    ===================================================================我的心太乱
      

  4.   

    对象的构建,如果是在堆上的话,我们利用new关键词class *pA = new A();这个时候发生两件事:
    1 调用::operator new 配置内存
    2 调用对象的constructor,在::operator new 配置好的内存中构造对象。很显然,new和::operator new 是不同的。new是一个算式(侯SIR《STL源码剖析》),::operator new ,如同它的名字一样,是一个运算符。我们可以在自己的类中订做自己的 operator new, 但永远不可以改变语言层面建立起来的new关键词的语意。
      

  5.   

    operation new 只负责分配内存,new 在内部调用operation new ,
    之后调用构造函数
      

  6.   

    但是重载了::operate new后,局部分配还是要用到new的,new只是::operate new的表现形式而已。