new與預設建構函式

2021-06-15 20:52:49 字數 652 閱讀 2527

class a

private:

int a, b;

};class b

;int main()

;//    a *pa = new a[10];

b *pb = new b[10];

delete pb;

//    vectorva(100);

vectorvb(100);

a c(a);    

//使用系統提供的行為,不能叫預設拷貝建構函式,叫「預設按成員初始化」

return 0;

} int *pia = new int[10];

我們並不能給動態分配的陣列每個元素乙個初始化值,語法並不支援

基於這個原因,對於物件陣列

如果並沒有預設建構函式,不能建立動態物件陣列,因為new物件陣列的時候,自動呼叫建構函式以建立物件,(new不只是分配記憶體而已,而且給編譯器標識出這塊記憶體存放的是什麼型別的物件,int,class a,這也屬於new的行為,所以它呼叫建構函式,以提供識別資料型別,解析二進位制資料流的能力)如果並沒有預設建構函式,

語法上不支援逐個初始化列表給動態陣列,這樣就沒法構造物件了

容器vector和內建陣列型別,是乙個道理,

關鍵在於理解:new的動作不只是分配記憶體,而且進行型別標識的行為

new與建構函式

function cat name,age 機制1 每乙個函式物件都有乙個prototype物件 console.log cat.prototype node輸出 cat.prototype.get name function 機制2 new關鍵字 建構函式 step1 建立了乙個新的物件 該物件預...

C 建構函式與預設建構函式

建構函式 c 用於構建類的新物件時需要呼叫的函式,該函式無返回型別!注意 是 無 不是空!void 預設建構函式 未提供顯式初始值時,用來穿件物件的建構函式。以上是二者的定義,但是單從定義很難對二者進行區別,下面依然看 1 class testclass 2 上面的注釋中已標出了預設建構函式和建構函...

建構函式 new與this的解釋

1.什麼是建構函式?構造,就是初始化的意思 建構函式,是指 結合new建立物件 並 初始化物件裡各種屬性的 函式 在 new 物件時,跟在 new 後面的函式 就叫建構函式 2.a.命名規範 首字母都大寫,且一般為名詞 b.用法 通過new關鍵字來呼叫 強調 c.用法 為 new 關鍵字建立的空物件...