这就是placement new。
最后来个总结吧:
如果想在堆上创建一个对象,应该用new操作符,它分配内存,同时又为对象调用构造函数。
如果仅仅想分配内存,就用operator new函数,它不会调用构造函数。
如果你想定制自己的在堆对象被建立时的内存分配过程,应该重载写你自己的operator new函数,new操作符会调用你定制的operator new。
如果想在一块已经分配好的内存里建立一个对象,使用placement new。
这就是placement new。
最后来个总结吧:
如果想在堆上创建一个对象,应该用new操作符,它分配内存,同时又为对象调用构造函数。
如果仅仅想分配内存,就用operator new函数,它不会调用构造函数。
如果你想定制自己的在堆对象被建立时的内存分配过程,应该重载写你自己的operator new函数,new操作符会调用你定制的operator new。
如果想在一块已经分配好的内存里建立一个对象,使用placement new。