- 通过new创建该类的对象时,将首先调用该操作符函数分配内存(可重载),然后再调用该类的构造函数
- 通过delete销毁该类的对象时,将首先调用该类的析构函数,然后再调用该操作符函数释放内存(可重载)
cpp
#include <iostream>
#include <cstdlib>
using namespace std;
class A{
public:
A(void){
cout << "A construct" << endl;
}
~A(void){
cout << "~A disconstruct" << endl;
}
void * operator new(size_t size){
cout << "A new" << endl;
return malloc(size);
}
void operator delete(void *p){
cout << "A delete" << endl;
free(p);
}
};
int main(void){
A *p = new A;
delete p;
return 0;
}