覆寫C++的new與delete
#include <iostream>
#include <memory.h>
#include <stdlib.h>
using namespace std;
void* operator new(size_t num)
{
cout << "I'm operator new, i got num=" << num << endl;
return malloc(num);
}
void* operator new[](size_t num)
{
cout << "I'm operator new[], i got num=" << num << endl;
return malloc(num);
}
void operator delete(void* addr)
{
cout << "I'm operator delete, i got addr=0x" << hex << (long long)addr << endl;
return free(addr);
}
void operator delete[](void* addr)
{
cout << "I'm operator delete[], i got addr=0x" << hex << (long long)addr << endl;
return free(addr);
}
int main()
{
int* a = new int[10];
delete[] a;
return 0;
}
留言