内存管理操作符在C++为 new new [] delete delete[]
new的重载方式有两种
void *type::operator new(size_t size)
{
//
}
void *operator new (size_t size)
{
//
}
可以看到两种重载返回的都是void*类型。本例中,两种重载方式都需要一个size_t类型的参数。
type *ptr = new type;
这个时候用的重载的函数,如果函数没有重载则调用的是系统自己的函数。
delete也有两种重载的方式:
void type::operator delete(void *ptr)
{
//
}
void operator delete(void *ptr)
{
//
}
delete的第一个参必须是void*,用来指示要释放的空间。
type *t = new type;4
delete t;
用的重载的方法,而如果没有重载的话,用的就是系统的delete。