//預設建構函式
//定義: 可以不通過提供任何實際引數就能呼叫的建構函式稱為預設建構函式
//如果定義了乙個陣列 但是沒有提供初始值
//如:x ax [100];
//如果類x 沒有預設建構函式 則會產生編譯錯誤
//例項:
class
x//預設建構函式 x(
int v)
//建構函式 x(
int v1,
int v2)
//同上
private
:int m,n;};
//另外一種特殊的形式
class
y//這個函式就有三種方式可以被呼叫 y() y(int) y(int,int) 使用更加靈活
private
:int m,n;};
//注意:
//如果類沒有定義任何的建構函式 則編譯器會自動合成乙個所需要的預設建構函式 但是如果定義了乙個任意型別的建構函式 編譯器均不會再自動合成
建構函式初始化(預設構造)
當且僅當沒有定義任何建構函式時,編譯器才會提供預設建構函式。為類定義了建構函式後,程式設計師就必須為他提供預設建構函式。我們怎麼理解這句話呢?首先,什麼是預設建構函式?預設建構函式時在未提供顯示初始化時,用來建立物件的建構函式。也就是說,它是用於下面這種宣告的建構函式 expa expa 然後我們看...
建構函式初始化列表和初始化函式
其實並沒有所謂的初始化函式的概念,本文中的初始化函式只是說明在函式體內進行賦值。而初始化列表才是真正意義上的物件初始化。使用初始化列表效率會高一點。c 規定,物件的成員變數的初始化動作發生在進入建構函式本體之前。在建構函式體內只是賦值,並不是初始化。請看下面這個栗子 class base publi...
預設初始化
雖然保險的做法是對每個變數都顯示初始化,但是了解一下預設初始化的規則也是很有必要的。1.定義於任何函式體之外的變數被初始化為0。2.定義在函式體內部的區域性變數不會被預設初始化。所以,它的值是未定義的 這裡的 未定義 我的理解 變數所分配記憶體中的二進位制資料,分配時是什麼就是什麼,機器會按照變數的...