C 繼承和組合混搭下的構造和析構呼叫原則

2021-07-29 02:14:42 字數 659 閱讀 6719

原則:先構造父類(如果父類還有父類,則先構造父類的父類),再構造成員變數(構造組合類),

最後構造自己;

先析構自己,再析構成員變數(析構組合類),最後析構父類,如果父類還有父類,繼續析構

父類的父類。

示例**:祖宗類object,同時也是子類的組合類,父類parent,子類child

#include using namespace std;

class object

~object()

protected:

int a;

int b;

prpivate:

}class parent : public object

~parent()

void printp(int a, int b)

protected:

char *p;

}class child : public parent

~child()

void printc()

protected:

char *myp;

object obj1;

object obj2;

}void objplay()

int main()

繼承與組合混搭情況下,構造和析構呼叫原則

1 子類物件在建立時會首先呼叫父類的建構函式 2 父類建構函式執行結束後,執行子類的建構函式 3 當父類的建構函式有引數時,需要在子類的初始化列表中顯示呼叫 4 析構函式呼叫的先後順序與建構函式相反 總之,在繼承與組合混搭的情況下,構造函式呼叫順序 先呼叫父類建構函式 一直呼叫到最祖先的父類,類似遞...

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

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

C 繼承中的構造和析構

在c 的繼承中,在子類物件構造時,需要呼叫父類建構函式對其繼承來的成員進行初始化,在子類進行析構時,需要呼叫父類的析構函式對其繼承來的成員進行清理,過程如下 1 子類物件在建立時會首先呼叫父類的建構函式 2 父類建構函式執行結束後,執行子類的建構函式 3 當父類的建構函式有引數時,需要在子類的初始化...