1. 程式人生 > 其它 >C++基礎03-類的組合-類與物件

C++基礎03-類的組合-類與物件

類與物件-類的組合 | C++基礎

組合的概念

類中的成員是另一個類的物件;可以在已有抽象的基礎上實現更復雜的抽象。

類組合的建構函式設計

原則:不僅要負責對本類中的基礎型別成員資料初始化,也要對物件成員初始化。

宣告形式:

類名::類名(物件成員所需的形參,本類成員形參)
    	:物件1(引數), 物件2(引數), ......
{
//函式體其他語句        
}

構造組合類物件時的初始化次序

首先對建構函式初始化列表中列出的成員(包括基本型別成員和物件成員)進行初始化,初始化次序是成員在類體中定義的次序。

  • 成員物件建構函式呼叫順序:按物件成員的宣告順序,先宣告者先構造
  • 初始化列表中未出現的成員物件,呼叫用預設建構函式(即無形參的)初始化

處理完初始化列表之後,再執行建構函式的函式體。

前向引用宣告

類應該先宣告,後使用

如果需要在某個類宣告之前,引用該類,則應進行向前引用宣告

前向引用宣告只為程式引入一個識別符號,但具體宣告在其他地方

class B; //前向引用宣告
class A {
public:
    void f(B b);
};
class B {
public:
    void g(A a);
};

注意:

  1. 使用前向引用宣告雖可解決一些問題,但並未萬能的
  2. 在提供一個完整的類宣告之前,不能宣告該類的物件,也不能在內聯成員函式中使用該類的物件
  3. 當使用前向引用宣告時,只能使用被宣告的符號,而不能涉及類的任何細節