派生類的建構函式和析構函式(C 物件導向)

2021-07-24 03:18:28 字數 1522 閱讀 3571

派生類的建構函式和析構函式的引進:派生類

不能繼承基類的建構函式和析構函式

,派生類需要定義自己的建構函式和析構函式

派生類建構函式的語法:

派生類名::派生類名(引數總表):基類名1(參數列1),基類名(引數名2)....基類名n(引數名n),內嵌子物件1(參數列1),內嵌子物件2(參數列2)....內嵌子物件n(參數列n)

派生類的析構函式的語法:

~派生類名();

或  ~派生類名()

派生類建構函式的作用:

負責清理它新定義的非物件資料成員。(物件的資料成員由它所屬類的析構函式負責析構,基類的由基類負責)

派生類析構函式:功能是在該物件消亡之前進行一些必要的清理工作,析構函式沒有型別,也

沒有引數

派生類建構函式執行的次序

1. 呼叫基類建構函式,呼叫順序按照它們被繼承時

宣告的順序(從左到右);

2.呼叫內嵌成員物件的建構函式,呼叫順序按照它們在

類中宣告的順序;

3. 派生類的建構函式體中的內容。

派生類析構函式執行順序與建構函式

相反。例如:

#include

#include

using

namespace

std;

class

b1    

~ b1()

};classb2

~b2() };

class c: public b2, public b1, publicb3

private: 

b1 memberb1; 

b2 memberb2; 

b3 memberb3;

};int

main()

//釋放空間時呼叫析構函式

執行結果:

constructing b2

2            //呼叫基類建構函式,呼叫順序按照它們被繼承時宣告的順序

constructing b1 1

constructing b3

constructing b1 3

constructing b2

4           //c類呼叫內嵌成員物件的建構函式,呼叫順序按照它們在類中宣告的順序

constructing b3

destructing b3

destructing b2

destructing b1

destructing b3

destructing b1

destructing b2             

//呼叫順序與建構函式相反

派生類的建構函式和析構函式

c 學習筆記和總結 這段時間看了c 中類的繼承和派生,這應該算是c 和c語言相比最主要的乙個知識點了。不得不說類的功能是十分強大的,它定義了public,protected,private三種訪問內部成員的訪問許可權,增加了程式的安全性和保護性。通過定義類的物件可以訪問類的成員,但是定義物件是外部訪...

派生類的建構函式和析構函式

一.簡單派生類的析構函式和建構函式。1.簡單派生類建構函式的定義形式 派生類建構函式名 總參數列列 基類建構函式名 參數列列 其中,總參數列列中的引數包括派生類引數和基類引數,且基類引數放在最前面。參數列列裡中只有引數名,沒有引數型別。2.注意簡單派生類建構函式的定義形式中,中間有乙個冒號。3.參數...

C 派生類的構造和析構函式

派生類的目的是為了發展,派生類繼承了積累的成員,實現了原有 的重用,這只是一部分 而 的擴充才是最主要的,只有通過新增新的成員,加入新的功能,類的派生才有實際意義。派生類的建構函式只負責對新增的成員進行初始化,對所有從基類 繼承來的成員,其初始化工作還是由基類的建構函式完成。同樣,對派生類物件的掃尾...