1. 程式人生 > >new一個類的指標(不同括號的區別)

new一個類的指標(不同括號的區別)

括號分為兩種,中括號[]或小括號()。
為方便說明,定義指標型別為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();是一樣的。