当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。
Struct A;
A* p = (A*)new(0) A;
void* operator new(size_t size, int32_t n)throw()
{
}
首先new查找A里面的operator new.
其次查找全局的 operator new(size_t size, int32_t n)throw()
再次 std::new。
具体查看c++ primer - - > p638.
http://blog.csdn.net/caows/article/details/1856098
http://www.cnblogs.com/luxiaoxun/archive/2012/08/10/2631812.html