最近看一篇文章(http://www.cppblog.com/Solstice/archive/2011/02/22/140410.html),发现有些东西忘掉了,悲剧之余,写下本文,算是补遗吧。
new 函数 原型
operator new void* operator new (size_t)
operator new[] void* operator new (size_t)
operator delete void operator delete(void* ptr)
operator delete[] void operator delete[](void* ptr)
placement new void* operator new (size_t, void*)throw()
placement new[] void* operator new (size_t, void*) throw()
placement delete void operator delete(void* ptr, void* ptr2) throw()
placement delete[] void operator delete[](void* ptr, void* ptr2) throw()
set_new_handler
std::nothrow 标志
注意placement仅仅属于operator的一种重载,可以从函数原型看出。。。
我们说的new是由operator new(size_t) 和 placement new一起构成,所以本质上我们并不能重载new,但是却可以分别重载new的两个组成部分。
完