問題: 如何初始化父類成員? 父類與子類的建構函式的關係?
在子類物件構造時, 需要呼叫父類建構函式對其繼承得來的成員進行初始化。
在子類物件析構時,需要呼叫父類析構函式對其繼承得來的成員進行清理。
繼承中的構造與析構呼叫規則
1. 子類物件在建立時會首先呼叫父類的建構函式
2. 父類建構函式執行結束後,執行子類的建構函式
3. 當父類建構函式具有引數時,需要在子類的初始化列表中顯式呼叫
4. 析構函式呼叫的先後順序與建構函式相反。
(**可以斷點除錯,完整展現規則。)
#includeusing namespace std;
class parent
~parent()
private:
int a;
int b;
};class child : public parent
~child()
};void playobj()
int main()
C 繼承與構造析構
include 子類物件可以當作父類物件使用 子類物件可以直接賦值給父類物件 子類物件可以直接初始化父類物件 父類指標可以直接指向子類物件 父類引用可以直接引用子類物件 子類物件構造時,需要呼叫父類建構函式對其繼承得來的成員進行初始化 子類物件析構時,需要呼叫父類析構函式對其繼承得來的成員進行清理 ...
繼承中的構造與析構
賦值相容性原則 子類物件可以當作父類物件使用 子類物件可以直接賦值給父類物件 子類物件可以直接初始化父類物件 父類指標可以直接指向子類物件 父類引用可以直接引用子類物件 子類是就是特殊的父類!class child public parent int main int argc,char argv ...
C 繼承的構造與析構
父類建構函式在子類中的呼叫方式 顯示呼叫 父類建構函式的呼叫 class child public parent 顯示呼叫 child string s parent parameter to parent 舉個例子 include include using namespace std class...