C 繼承構造原則

2021-09-11 06:20:16 字數 562 閱讀 7292

構造方法用來初始化類的物件,與父類的其它成員不同,它不能被子類繼承(子類可以繼承父類所有的成員變數和成員方法,但不繼承父類的構造方法)。因此,在建立子類物件時,為了初始化從父類繼承來的資料成員,系統需要呼叫其父類的構造方法。如果沒有顯式的建構函式,編譯器會給乙個預設的建構函式,並且該預設的建構函式僅僅在沒有顯式地宣告建構函式情況下建立。

構造原則如下:

如果子類沒有定義構造方法,則呼叫父類的無引數的構造方法。

如果子類定義了構造方法,不論是無引數還是帶引數,在建立子類的物件的時候,首先執行父類無引數的構造方法,然後執行自己的構造方法。

在建立子類物件時候,如果子類的建構函式沒有顯示呼叫父類的建構函式,則會呼叫父類的預設無參建構函式。

在建立子類物件時候,如果子類的建構函式沒有顯示呼叫父類的建構函式且父類自己提供了無參建構函式,則會呼叫父類自己的無參建構函式。

在建立子類物件時候,如果子類的建構函式沒有顯示呼叫父類的建構函式且父類只定義了自己的有參建構函式,則會出錯(如果父類只有有引數的構造方法,則子類必須顯示呼叫此帶參構造方法)。

如果子類呼叫父類帶引數的構造方法,需要用初始化父類成員物件的方式。

C 繼承中構造析構呼叫原則

構造析構呼叫原則 1 子類物件在建立時會首先呼叫父類的建構函式 2 父類建構函式執行結束後,執行子類的建構函式 3 當父類的建構函式有引數時,需要在子類的初始化列表中顯示呼叫 4 析構函式呼叫的先後順序與建構函式相反 案例如下 define crt secure no warnings includ...

C 繼承和組合並存的構造析構原則

當父類建構函式有引數時,需要在子類的初始化列表中顯式呼叫 先構造父類,再構造成員變數 組合 最後構造自己 先析構自己,再析構成員變數 組合 最後析構父類 當父類建構函式有引數時,需要在子類的初始化列表中顯式呼叫 先構造父類,再構造成員變數 組合 最後構造自己 先析構自己,再析構成員變數 組合 最後析...

C 建構函式 繼承方式

構造方法用來初始化類的物件,與父類的其它成員不同,它不能被子類繼承 子類可以繼承父類所有的成員變數和成員方法,但不繼承父類的構造方法 因此,在建立子類物件時,為了初始化從父類繼承來的資料成員,系統需要呼叫其父類的構造方法。如果沒有顯式的建構函式,編譯器會給乙個預設的建構函式,並且該預設的建構函式僅僅...