派生類的建構函式和析構函式的引進:派生類
不能繼承基類的建構函式和析構函式
,派生類需要定義自己的建構函式和析構函式
派生類建構函式的語法:
派生類名::派生類名(引數總表):基類名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 派生類的構造和析構函式
派生類的目的是為了發展,派生類繼承了積累的成員,實現了原有 的重用,這只是一部分 而 的擴充才是最主要的,只有通過新增新的成員,加入新的功能,類的派生才有實際意義。派生類的建構函式只負責對新增的成員進行初始化,對所有從基類 繼承來的成員,其初始化工作還是由基類的建構函式完成。同樣,對派生類物件的掃尾...