new 乙個物件的時候加括號和不加括號有什麼區別

2021-06-19 18:35:53 字數 495 閱讀 7667

先看以下**:

#include

using namespace std;

int main()

delete a;

int *b=new int[1000];

for(int i=0;i<100;i++)

delete a;

int *b=new int[1000]();

for(int i=0;i<100;i++);

};main函式中使用語句:

a *b=new a;

cout但是,如果吧a的建構函式刪掉,則兩個語句輸出的結果分別是:隨機數,0。

由此可見,c++在new時的初始化的規律可能為:對於有建構函式的類,不論有沒有括號,都用建構函式進行初始化;如果沒有建構函式,則會呼叫預設的建構函式或無參的建構函式,而且不加括號的new只分配記憶體空間,不進行記憶體的初始化,而加了括號的new會在分配記憶體的同時初始化為0。

2.修改參考:

new建立乙個物件,是否需要加括號?

問 假設有class test,那麼以下兩種寫法有何不同?寫法1 test test new test 寫法2 test test new test 答 這需要很細緻的專研,因為兩種寫法的區別雖然細微,但會導致不同的執行結果。test是否是pod型別,是否包含pod成員並且採用編譯器自動產生的預設建...

new 物件加括號和不加括號的區別

在new物件的時候有加上 有不加 不知道這個到底是什麼區別?比如 cbase base new cderived cbase base new cdeviced 很多人都說,加括號呼叫沒有引數的建構函式,不加括號呼叫預設建構函式或唯一的建構函式。這是有問題的。對於自定義類型別 如果該類沒有定義建構函...

物件 new乙個

1格式格式 class 類名 類名 要求符合大駝峰命名法,見名知意 類名這裡可以認為是乙個資料型別名,自定義資料型別 屬性描述 描述當前類有哪些屬性 例如 人類的身高體重,年齡姓名 行為描述 描述當前類有哪些行為 例如 人類的吃飯行為,睡覺行為,打遊戲行為依葫蘆畫瓢格式 scanner掃瞄器 sca...