重载 operator new & operator delete
new 和 delete 都是分为类成员内部和全局两种情况,operator new 与 operator delete,::operator new和::operator delete,前者为成员函数后者为全局函数,两者的重构基本相同,应用时有不同。
A a=new A //成员函数
A a=::new A //全局函数
关键内容如下
void* operator new(size_t size)
{
return malloc(size);
}
void operator delete(void* ptr,size_t)//size_t可以省略
{
return free(ptr);//delete[]对应的要free多次
}
void operator delete(void* ptr)
{
return free(ptr);
}