new和delete不仅承载着内存分配的功能还承载着对象构造函数的调用功能。
new 操作符的执行过程:
1. 调用operator new分配内存 ;
2. 调用构造函数生成类对象;
3. 返回相应指针。
new和operator new之间的联系
A* a = new A;分为两步:1.分配内存,2.调用A()构造对象。
分配内存这一操作就是由operator new(size_t)来完成的,如果类A重载了operator new,那么将调用A::operator new(size_t ),如果没有重载,就调用::operator new(size_t ),全局new操作符由C++默认提供。
Ref: