#include <iostream>
using namespace std;
//new和delete的局部重載例子
class test{
public:
test(){
cout << "test constructor." << endl;
}
//返回的是void類型的指針
void* operator new (size_t size){
cout << "operator new" << endl;
return malloc(size);
}
//傳入的是void類型的指針
void operator delete (void *p){
cout << "operator delete" << endl;
free(p);
}
~test(){
cout << "unconstructor test." << endl;
}
};
//new 和delete運算符是要分別調用構造函數和析構函數的
void main(){
test *t = new test();
//先執行重載的new函數,然後執行構造函數
delete t;
//先執行析構函數,然後執行重載的delete函數
}
new和delete函數的重載
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.