類A的物件作為類B的成員時,類A的建構函式如何呼叫

2021-09-11 18:55:29 字數 595 閱讀 9831

class a

};class b

};int main(int argc, const char **ar**)

執行結果

可以看出類a先於類b構造,這是符合構造類物件時的執行順序的。

由於類a和類b都是空類,雖然類b包含了類a的物件,然而他們所占用的記憶體大小依舊都是1

class a

};class b

};int main(int argc, const char **ar**)

和上面執行結果相同,只是sizeof(a) = sizeof(b)=4

class a

};class b

};int main(int argc, const char **ar**)

此時a的物件的建構函式必須在類b的建構函式的「:」後面,而不能在類b的建構函式的函式體內。這和類成員的構造順序相關。乙個類在構造時,先定義成員變數,而後在呼叫成員函式,所以類a的構造必須在類b的建構函式的「:」後面呼叫,如果定義在函式體內就和類成員定義順序矛盾,從而編譯失

類物件作為類成員

1 含義 在c語言中,乙個結構體可以包含另外乙個結構體。在c 中乙個類的成員,也可以是另乙個類的物件。例如 b類中有物件a作為成員,稱a為物件成員。classa class b 2 建構函式和析構函式生成順序?當其他類的物件作為本類成員,先生成物件成員的類的建構函式,再生成本類的建構函式 析構函式生...

類物件作為類成員筆記

c 類中的成員可以是另乙個類的物件,我們稱該成員為物件成員 例如 class aclass bb中有物件a作為成員,a為物件成員 include using namespace std include 類物件作為類成員 手機類 class phone string m pname 人類 class ...

C 類物件作為類成員

c 類中的成員可以是另乙個類中的物件,我們稱該成員為物件成員 例如 classa class b b類中有物件a作為成員,a為物件成員 那麼當建立b物件時,a與b的構造和析構的順序誰先誰後?舉例 class phone 手機品牌名稱 string m pname class person 姓名 st...