建構函式與析構函式

2021-08-16 11:43:22 字數 1114 閱讀 7198

特點:

1.在建立物件時編譯器自動呼叫建構函式

2.無返回值型別(實際上建構函式有返回值,返回的就是建構函式所建立的物件),函式名與類名相同。規則:類名(引數列表),例:test(int d){}

3.建構函式也可在類外實現,規則:類名::函式名(引數列表),例:test::test(int d){}

4.每個物件在其生命週期內只呼叫一次建構函式

5.建構函式可以進行過載,系統在自動呼叫時按一般函式過載的規則選乙個執行

6.系統提供預設的建構函式:類名(){},例:test(){},該函式只是為了成功構造物件,不具備初始化資料成員的功能

7.一旦編寫建構函式,系統將不再提供預設的建構函式

8.不帶引數的建構函式與帶引數,但引數具有預設值得建構函式都稱之為預設的建構函式,兩者不能共存

9.在例項化物件時呼叫無參的建構函式的方法為:test t; ,但若不小心寫成test t();編譯器不會報錯,因為會將這一句解釋為函式的宣告,返回值型別為test,函式名為t,無參

10.建構函式必須宣告為公有的,若為私有的或者保護的,就無法在外部進行呼叫

特點:

1.函式名與類名相同,但前需加「~」,例:~test(){}

2.無返回值型別

3.乙個類只能有乙個析構函式

4.在退出程式之前系統自動呼叫

5.物件析構的順序與物件構造的順序相反,因為生成的物件儲存在棧區,遵循先進後出的原則

6.析構函式不能帶引數

7.系統也同樣提供預設的析構函式

8.析構函式必須宣告為公有的,若為私有的或者保護的,就無法在外部進行呼叫

class test

;test::test(int d):data(d)

執行結果:

建構函式與析構函式

建構函式 主要作用就是為物件初始化。有一點要說的是,在繼承體系彙總,如果在建構函式中,如果沒有指定基類的建構函式,那麼編譯器會在建構函式開頭加入,基類的預設建構函式,這樣就可以初始化基類物件部分 析構函式 對於析構函式,要說的多點,實際也不太複雜,就是加入了virtual 使其具有了多型性質 inc...

建構函式與析構函式

建構函式 先看看建構函式的呼叫順序規則,只要我們在平時程式設計的時候遵守這種約定,任何關於建構函式的呼叫問題都能解決 建構函式的呼叫順序總是如下 1.基類建構函式。如果有多個基類,則建構函式的呼叫順序是某類在類派生表中出現的順序,而不是它們在成員初始化表中的順序。2.成員類物件建構函式。如果有多個成...

建構函式與析構函式

概述 乙個類有兩種特殊的成員函式 建構函式與析構函式。建構函式功能是在建立物件時,給資料成員賦初值,即物件的初始化。析構函式的功能是釋放乙個物件,在物件刪除前,用它做一些記憶體釋放工作,與建構函式的功能相反。建構函式 在物件建立時它會被自動執行,因此變數 物件的初始化 一般都放在建構函式中。1 物件...