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

2021-09-24 19:53:14 字數 547 閱讀 8847

構造析構呼叫原則:

1、子類物件在建立時會首先呼叫父類的建構函式

2、父類建構函式執行結束後,執行子類的建構函式

3、當父類的建構函式有引數時,需要在子類的初始化列表中顯示呼叫

4、析構函式呼叫的先後順序與建構函式相反

案例如下:

#define _crt_secure_no_warnings

#includeusing namespace std;

class parent

parent(int a)

~parent()

int a; };

class child :public parent

child(int b)

child(int b, int a) :parent(a)

~child()

void test() {

cout << "b=" 《由此可以看出先構造了父類的有參構造,然後才構造子類的有參構造,

繼而執行成員函式test();輸出b的值;

程式最後先析構子類,後構造父類;

繼承中構造析構

在繼承中面臨乙個問題就是 我們的基類和派生類都有各自的建構函式和析構函式,那麼再例項化派生類成員的時候,這個構造析構的順序是怎麼樣的呢?class animal animal void setm int a 0 intgetage private int age 我們構造了個動物類,我們需要繼續構造...

繼承中的構造析構函式呼叫順序

子類建構函式必須對繼承的成員進行初始化 1.通過初始化列表或則賦值的方式進行初始化 子類無法訪問父類私有成員 2.呼叫父類建構函式進行初始化 2.1 隱式呼叫 子類在被建立時自動呼叫父類建構函式 只能呼叫父類的無參建構函式和使用預設引數的建構函式 2.2 顯示呼叫 在含參建構函式的初始化列表呼叫父類...

C 繼承與構造析構

include 子類物件可以當作父類物件使用 子類物件可以直接賦值給父類物件 子類物件可以直接初始化父類物件 父類指標可以直接指向子類物件 父類引用可以直接引用子類物件 子類物件構造時,需要呼叫父類建構函式對其繼承得來的成員進行初始化 子類物件析構時,需要呼叫父類析構函式對其繼承得來的成員進行清理 ...