每個類都分別定義了它的物件被初始化的方式,類通過乙個或幾個特殊的成員函式來控制其物件的初始化過程,這些函式叫建構函式。建構函式的任務是初始化類物件的資料成員,無論何時只要類的物件被建立,就會執行建構函式。
對於建構函式有以下幾點需要注意:
建構函式與類同名,並且沒有返回值。
建構函式和其他成員函式一樣,都能夠被過載
建構函式不能夠被宣告成const,當我們建立乙個const物件,直到建構函式初始化完成,物件才能獲得真正的常量屬性。因此建構函式可以建立物件過程中對其寫值。
析構函式是一類特殊的成員函式,它會在每次刪除所建行物件執行。
析構函式具有如下特點:
析構函式也和類名相同,不過需要在前面加上~便於與建構函式區分。
析構函式沒有返回值,並且不能夠被過載,這一點和建構函式不同
當物件被撤銷時析構函式自動呼叫,與建構函式不同的是,析構函式可以被顯示呼叫,已釋放物件中動態申請的記憶體。
無法宣告為 const或 static。 但是,可以為宣告為 const、 或 static 的物件的析構呼叫它們。
classa~
a()}
;classb~
b()}
;classc:
public b ~c
()};
intmain()
輸出結果如下:
可以看出以下兩條原則:
先構造的物件後被析構;
先呼叫父類的建構函式,再呼叫子類的建構函式。
建構函式和析構函式
建構函式沒有返回值,不能被顯示的呼叫。它是在定義物件時由系統自動執行的,而且只執行一次。如果沒有定義建構函式,系統會自動生成乙個建構函式,只是這個建構函式的函式體是空,沒有引數,也不執行任何初始化的操作。帶引數的建構函式 有一種簡練,方便的寫法 建構函式的引數初始化表 box int h,int w...
析構函式和建構函式
每個物件生成的時候都要完成物件的初始化,如設定屬性的初始值。c 中規定每個類都有乙個初始值,如果沒有,系統會產生乙個預設的建構函式。這個建構函式沒有任何引數,不做任何額外的工作。但往往我們會自己寫乙個建構函式,用來進行特殊的初始化工作。這樣的話,編譯器就不會再為其生成預設的建構函式。class 類名...
建構函式和析構函式
stock hot 因為資料部分的訪問狀態是私有的,程式不能訪問資料成員。建立stock的建構函式,由於需要為stock提供3個值,因此應為建構函式提供3個引數值,程式設計師可能指向設定company成員,而其他的設定為0 使用預設引數完成 宣告如下 stock const char co,int ...