內存管理操作符在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。