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 函式模板 乙個簡章的函式模版...