operator new/delete 重载
语法格式
void *operator new(size_t);
void operator delete(void *);
void *operator new[](size_t);
void operator delete[](void *);
#include <iostream>
using namespace std;
class A
{
public:
// 构造函数
A(){
// _x=1;
// _y=2;
// 在new中初始化了
cout << "A()" << endl;
}
// 析构函数
~A(){
cout << "~A()" << endl;
}
// 成员函数,输出_x和_y的值
void func(){
cout << _x << " " << _y << endl;
}
// 重载new操作符
void *operator new(size_t size){ // size为8,因为A类的大小为8字节(两个int)
cout << size << endl;
cout << "operator new" << endl;
void *p = malloc(size); // 分配内存
((A*)p)->_x = 100