1、輸入以下程式,分析執行結果。
2、修改上面的4個類,新增析構函式,在析構函式中輸出各私有資料成員的值。並分析結果。
實驗分析以及心得體會:主要是類的多繼承性,在繼承了多個基類之後,派生類物件呼叫的建構函式和析構函式的順序,以及在派生關係中同名函式的隱藏關係,根據實驗結果可以發現派生類物件在呼叫建構函式遵循的定律是首先呼叫基類的建構函式,其次是呼叫物件的建構函式,最後才是呼叫自身的建構函式,關於派生物件中定義了同名函式的問題,直接用派生物件呼叫該同名函式是,基類的該函式被隱藏,如果要呼叫則要使用基類的名呼叫。在加入析構函式之後可以發現,析構函式的呼叫順序剛好和建構函式的呼叫順序相反先是自身析構函式,其次是物件的析構函式,最後才是基類。
C 建構函式析構函式呼叫順序
在使用建構函式和析構函式時,需要特別注意對它們的呼叫時間和呼叫順序。在一般情況下,呼叫析構函式的次序正好與呼叫建構函式的次序相反 最先被呼叫的建構函式,其對應的 同一物件中的 析構函式最後被呼叫,而最後被呼叫的建構函式,其對應的析構函式最先被呼叫。簡單來說,其建構函式的順序就一句話 基類建構函式 成...
C 建構函式 析構函式 虛析構函式
一般地,建立物件和刪除物件時,父類建構函式 子類建構函式 子類析構函式 父類析構函式。特例 如果用new建立了乙個物件,並將父類的指標指向這個子類的物件,那麼用delete撤銷物件時,系統只執行基類的析構函式,而不執行派生類的析構函式。如果希望按照子類析構函式 父類析構函式的順序執行,那麼應該將基類...
C 建構函式,析構函式
一 建構函式 在建立類的物件時自動呼叫的乙個函式,主要是為物件本身做初始化工作 沒有返回值,名字和類的名字相同,因為是在建立物件時候自動呼叫的,所以必須型別為public的,可以帶引數,可以有多個 如果類中沒有建構函式,在下面三種情況下,會自動的新增預設的建構函式 1.如果類中有虛函式,或者類中有虛...