C++中的new与delete总结
1. operator new、operator delete与new、delete操作符的区别:operator new的作用类似于malloc,负责分配内存;operator delete的作用类似于free,负责释放内存new操作符包括两个步骤;调用适当的operator new版本分配内存;在分配的内存上调用构造函数delete操作符包括两个步骤:在内存上调用析构函数;调用适当的operator delete版本释放内存operator new和operator delete函数可以重载、重写(名字遮掩),而new/delete操作符不可2. 标准库提供的operator new/delete(C++11)标准库提供的global operator new,在全局名字空间中定义:
void* operator new (std::size_t size); //全局标准版operator new void operator delete(void* ptr);//全局标准版operator delete class A{ public: static void operator new(size_t size);//类专属标准版operator new static void operator delete(void* ptr, size_t size) noexcept;//类特别成员版operator delete static void operator delete(void* ptr) noexcept;//类专属operator delete };对应关系:
http://www.cplusplus.com/reference/new/operator%20new/
operator new在C++中的各种写法 http://blog.sina.com.cn/s/blog_3c6889fe0100tqe8.html
c++重载operator new和operator delete http://blog.csdn.net/bichenggui/article/details/4553728
C++中的new和delete http://www.cnblogs.com/fly1988happy/archive/2012/04/26/2471099.html
033_深入C++的new http://www.cnblogs.com/alephsoul-alephsoul/archive/2012/10/17/2728019.html