繼承與包含中構造與析構的執行順序

2021-04-28 10:07:37 字數 677 閱讀 7324

[hp

筆試題目

]乙個類

a繼承類

b並且包含c,

b中包含

d。在構造

a的時候,先構造b中的

d,再構造

b,然後構造a中的

c,最後構造

a。虛構的過程剛好相反。例子如下:

|#include

class idcart

~idcart()

};class person

~person()

private:

idcart id;

};class subject

~subject()

};class teacher:public person

~teacher()

private:

subject sub;

};void main()

執行的結果如下:

idcart construstor

person contrustor

subject construstor

teacher construstor

teacher destrustor

subject destrustor

person destrustor

idcart destrustor

繼承中的構造與析構

賦值相容性原則 子類物件可以當作父類物件使用 子類物件可以直接賦值給父類物件 子類物件可以直接初始化父類物件 父類指標可以直接指向子類物件 父類引用可以直接引用子類物件 子類是就是特殊的父類!class child public parent int main int argc,char argv ...

繼承的構造與析構

子類物件在構造時,先呼叫父類的建構函式,然後再呼叫自己的建構函式,析構順序相反。看下測試 include include using namespace std class grandparent public grandparent cout 輸出結果如下 結果很明顯了,子類構造時,先呼叫父親的建...

繼承的構造與析構

賦值相容規則是指在需要基類物件的任何地方都可以使用公有派生類的物件來替代。在共有public繼承的條件下 子類物件可以當作父類物件使用 子類物件可以直接賦值給父類物件。子類物件可以直接初始化父類物件。父類指標可以直接指向子類物件。父類引用可以直接引用子類物件。舉例 include include u...