分享方式:


指定功能層級

本文說明如何將下列功能層級新增至 CObject 衍生類別:

  • 執行時間類別資訊

  • 動態建立支援

  • 序列化支援

如需功能的 CObject 一般描述,請參閱從 CObject 衍生類別一文

若要新增執行時間類別資訊

  1. CObject 衍生類別,如從 CObject 衍生類別一文中所述

  2. 在您的類別宣告中使用 DECLARE_DYNAMIC 宏,如下所示:

    class CPerson : public CObject
    {
       DECLARE_DYNAMIC(CPerson)
    
       // other declarations
    };
    
  3. 在實作檔案中使用 IMPLEMENT_DYNAMIC 宏 。類別的 CPP。 此宏會採用 類別的名稱及其基類的引數,如下所示:

    IMPLEMENT_DYNAMIC(CPerson, CObject)
    

注意

一律將IMPLEMENT_DYNAMIC放在實作檔中 (.您類別的 CPP。 IMPLEMENT_DYNAMIC宏應該只在編譯期間評估一次,因此不應該在介面檔案中使用 。可能包含在多個檔案中的 H。

新增動態建立支援

  1. CObject 衍生您的類別。

  2. 在類別宣告中使用 DECLARE_DYNCREATE 宏。

  3. 定義不含引數的建構函式(預設建構函式)。

  4. 在類別實作檔中使用 IMPLEMENT_DYNCREATE 宏。

新增序列化支援

  1. CObject 衍生您的類別。

  2. 覆寫 Serialize 成員函式。

    注意

    如果您直接呼叫 Serialize ,也就是說,您不想透過多型指標序列化物件,請省略步驟 3 到 5。

  3. 在類別宣告中使用 DECLARE_SERIAL 宏。

  4. 定義不含引數的建構函式(預設建構函式)。

  5. 在類別實作檔案中使用 IMPLEMENT_SERIAL 宏。

注意

「多型指標」指向類別的物件(稱為 A)或衍生自 A 的任何類別物件(例如 B)。 若要透過多型指標序列化,架構必須判斷它正在序列化之物件的執行時間類別 (B),因為它可能是衍生自某些基類的任何類別的物件 (A)。

如需如何從 CObject 衍生類別時啟用序列化的詳細資訊,請參閱 MFC 序列化 中的檔案文章 。

另請參閱

從 CObject 衍生類別