標籤:let 指標 更改 建立對象 msdn 運算子 樣本 對象 zh-cn
new 分配的資料類型:內建資料類型、自訂資料類型。
如果不成功,則 new 將返回零或引發異常;編寫自訂異常處理常式並調用 _set_new_handler運行庫函數(以您的函數名稱作為其參數),可更改此預設行為。
new 為 C++ 類對象分配記憶體時,將在分配記憶體後調用對象的建構函式。僅當類具有預設建構函式時,new 運算子才會建立對象的數組。
分配多維陣列時,除第一個維度之外的所有維度必須是計算結果為正值的常量運算式;最左側的數組維度可以是計算結果為正值的任何錶達式。new 運算子分配數組時,第一個維度可為零 ,此時new 運算子返回一個唯一指標。
例子:分配一個二維數組,然後釋放,數組的大小為 zhm
x 10
1、char (*p)[10] = new char[zhm][10]; delete[] p;
2、int m=2,n=3; int **p = new int*[m]; for(int i=0;i<m;i++) p[i] = new int[n]; ... for(int i=0;i<m;i++) delete[] p[i]; delete[] p;
3、如果 2 這樣寫:int **p ; p =new int* [m] ; for(int i=0;i<m;i++) p[i] = new int[n]; 萬萬不可寫成: (*p) =new int [m] ;
變數不能包含 const、volatile
、類聲明或枚舉聲明。 非法:volatile char * p = new volatile char[10];
new 運算子不會分配參考型別,因為這些類型不是對象。
new 運算子無法用於分配函數,但可用於分配指向函數的指標。 下面的樣本 為 返回整數的函數 分配一個包含 7 個指標的數組,然後釋放。
int (**p)() = new ( int (*[7])() ); delete *p;
C++ new運算子