C 繼承的構造與析構

2021-08-03 08:29:33 字數 2057 閱讀 4322

父類建構函式在子類中的呼叫方式 

顯示呼叫 

父類建構函式的呼叫

class child : public parent

//顯示呼叫

child(string s) : parent("parameter to parent")

}

舉個例子:

#include 

#include

using

namespace

std;

class parent

parent(string s)

};class child : public parent

//這裡再初始化列表中顯示的呼叫了父類構造

child(string s) : parent(s)

};int main()

執行結果如下:

parent()

child()

parent(string s) : cc

child(string s) : cc

物件建立時建構函式的呼叫順序

呼叫父類的建構函式

呼叫成員變數的建構函式

呼叫類自身的建構函式

口訣:先父母後客人再自己

舉個例子:

#include 

#include

using

namespace

std;

class object

};class parent : public object

parent(string s) : object(s)

};class child : public parent

//這裡先呼叫parent(s) 父類的帶參建構函式

//再分別呼叫成員變數 m01 m02 的帶參建構函式

//最後呼叫自身的 帶參建構函式

child(string s) : parent(s), mo1(s + " 1"), mo2(s + " 2")

};int main()

執行結果如下:

object(string s) : cc

parent(string s) : cc

object(string s) : cc 1

object(string s) : cc 2

child(string s) : cc

舉個例子:

#include 

#include

using

namespace

std;

class object

~object()

};class parent : public object

parent(string s) : object(s)

~parent()

};class child : public parent

child(string s) : parent(s), mo1(s + " 1"), mo2(s + " 2")

~child()

};int main()

執行結果如下:

object(string s) : cc

parent(string s) : cc

object(string s) : cc 1

object(string s) : cc 2

child(string s) : cc

~child() cc

~object() : cc 2

~object() : cc 1

~parent() : cc

~object() : cc

C 繼承與構造析構

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

C 繼承的構造與析構

父類建構函式在子類中的呼叫方式 顯示呼叫 父類建構函式的呼叫 class child public parent 顯示呼叫 child string s parent parameter to parent 舉個例子 include include using namespace std class...

繼承的構造與析構

子類物件在構造時,先呼叫父類的建構函式,然後再呼叫自己的建構函式,析構順序相反。看下測試 include include using namespace std class grandparent public grandparent cout 輸出結果如下 結果很明顯了,子類構造時,先呼叫父親的建...