void * className::operator new( size_t size ){
//TODO:
}
void * operator new( size_t size ){
//TODO:
}
void *
類型,並且都有一個參數,為size_t
類型。在重載 new 或 new[] 時,無論是作為成員函數還是作為全局函數,它的第一個參數必須是 size_t 類型。size_t 表示的是要分配空間的大小,對於 new[] 的重載函數而言,size_t 則表示所需要分配的所有空間的總和。
size_t 在頭文件 <cstdio> 中被定義為typedef unsigned int size_t;
,也就是無符號整型。
當然,重載函數也可以有其他參數,但都必須有默認值,並且第一個參數的類型必須是 size_t。
void className::operator delete( void *ptr){
//TODO:
}
void operator delete( void *ptr){
//TODO:
}
C * c = new C; //分配內存空間 //TODO: delete c; //釋放內存空間如果類中沒有定義 new 和 delete 的重載函數,那麼會自動調用內建的 new 和 delete 運算符。