括號分為兩種,中括號或小括號()。為方便說明,定義指標型別為class test, 指標為
test *ptest;
一、 中括號的情況。
中括號是用來標示申請的是乙個物件,還是一組物件。
1 沒有中括號時,即ptest = new test; 這時ptest得到的是乙個物件*ptest, 釋放時使用delete ptest;
2 帶有中括號時,在中括號中需要有乙個正整數引數。
ptest = new test[n];
n可以是變數,也可以是常量。
這時申請到的ptest指向的空間是n個連續的物件ptest[0],ptest[1]...ptest[n-1],即可以當做乙個陣列使用。
釋放時需要呼叫delete ptest;
二、小括號的情況。
小括號是用來指定初始化引數,用於類指標時,就是指定呼叫哪個建構函式。
1 有小括號時,小括號中可以有若干引數,也可以沒有引數。
比如ptest = new test(); 這樣在構造時就會呼叫無參構造test();
ptest = new test(1); 就會呼叫建構函式test(int),即乙個整型引數的建構函式。
2 沒有小括號時,預設呼叫無參構造。
即ptest = new test;
和ptest = new test();是一樣的。
關於C new問題個人小結
最近剛剛接觸攝像頭影象捕獲的內容。用vc6.0在xp下弄。抓捕執行緒一開就發現記憶體狂漲,過幾分鐘就奔潰了。仔細檢查才發現在給char 物件分配記憶體後,釋放記憶體不對。分配使用的 const long c buffnum 640 480 8 lpbyte rgbbuff new byte c bu...
C new 解析過載
c 中new的總結 c new用法之一 new運算子 最常用的是作為運算子的new,比如 string str new string test new 作為運算子,new和sizeof一樣,是c 內建的,你不能對它做任何的改變,除了使用它。new會在堆上分配一塊記憶體,並會自動呼叫類的建構函式。c ...
c new失敗處理
在c語言中如果malloc calloc分配記憶體失敗的時候,會返回乙個空指標,但是在 中使用 new 分配記憶體的時候,標準規定new分配失敗時會丟擲異常,因此不能使用如下的方式判斷new是否成功,int p new int size if null p return 如果分配失敗,則以上 將是沒...