C 學習筆記八

2021-07-05 10:15:40 字數 1062 閱讀 7810

24、子物件

》當乙個類的成員時另乙個類的物件時,該物件就為子物件。

》子物件即是物件的成員

》當類中出現了子物件(物件成員),該類的建構函式要包含對子物件的初始化,

通常採用成員初始化列表的方法來初始化子物件;

#include

class a 

void print()   ;

class b

//成員初始化列表,私有成員可以通過這種方式初始化

void print();

private:

a a;

//定義在私有成員

int b;

//定義在私有成員

};void b::print()

總結:a.成員初始化列表,私有成員可以通過這種方式初始化

b.被成員初始化列表初始化的變數都定義在私有成員,也包括前面的const變數。

子物件(二)    (50_子物件(複雜點))

#include"whole.h"

void main()

//10

//destructor of part 

//destructor of part 

//destructor of whole.錯誤!!! 

總結:在主函式中,呼叫乙個物件whole,而且物件中有物件成員part,則構造時將會先構造呼叫的物件成員part,

再構造whole。

退出時,也要先析構part物件,再析構whole物件。

a.子物件必須在成員初始化列表中初始化;

b.建立乙個物件時,它的所有子物件一起建立; //重要

c.先執行子物件建構函式,在執行物件的建構函式。

d.析構函式的執行順序與建構函式的執行順序嚴格相反。

e.建構函式的呼叫順序僅與子物件在類中宣告的順序有關,而與成員初始化列表中給出的對構造   

函式的呼叫順序無關

//難點:即建構函式的呼叫順序不是跟成員初始化列表中的賦值順序有關,而是與類子物件宣告

順序有關。

f.建構函式的成員初始化列表中未給出對子物件的呼叫,則表示使用子物件的預設建構函式。

C 學習筆記(八)

類 類的建構函式和析構函式 this指標 物件陣列 1.c 區別於c語言的物件導向特性 抽象 封裝和資料隱藏 多型 繼承 的可重用性 2.封裝 將實現細節放在一起並將它們與抽象分開。3.資料隱藏 將資料放在類的私有部分中 是一種封裝。資料隱藏可以是資料變的安全,同時使得類的使用者無需關心資料是被如何...

c 學習筆記八

函式 1 函式的過載 函式名相同,引數個數不同 引數個數相同,引數型別不同 函式的簽名 過載和指標引數 例如 int temp int pnum1,int pnum2 int temp long pnum1,long pnum2 過載和引用引數 過載和const引數 2 函式模板 乙個簡章的函式模版...

c 學習筆記八

函式 1 函式的過載 函式名相同,引數個數不同 引數個數相同,引數型別不同 函式的簽名 過載和指標引數 例如 int temp int pnum1,int pnum2 int temp long pnum1,long pnum2 過載和引用引數 過載和const引數 2 函式模板 乙個簡章的函式模版...