一般,在使用new时,编译器会执行两步操作:
1.调用::operator new()分配计算后的内存;
2.在分配好的内存上调用该类型的构造函数进行初始化。
delete则刚好相反:
1.调用对象的析构函数;
2.使用::operator delete()释放内存。
也就是说,new在申请完内存后会调用该类型的构造函数,也就是说new在申请完内存后会初始化这段内存
operator new()和::operator delete()是两个属于std中的函数,都是为了分配足够大的内存,它们并不关心内存的初始化问题,返回任意类型的指针(void *)
FR:徐海涛(hunk Xu) QQ技术交流群:386476712