指定功能層級
本文說明如何將下列功能層級新增至 CObject 衍生類別:
執行時間類別資訊
動態建立支援
序列化支援
如需功能的 CObject
一般描述,請參閱從 CObject 衍生類別一文 。
若要新增執行時間類別資訊
從
CObject
衍生類別,如從 CObject 衍生類別一文中所述 。在您的類別宣告中使用 DECLARE_DYNAMIC 宏,如下所示:
class CPerson : public CObject { DECLARE_DYNAMIC(CPerson) // other declarations };
在實作檔案中使用 IMPLEMENT_DYNAMIC 宏 。類別的 CPP。 此宏會採用 類別的名稱及其基類的引數,如下所示:
IMPLEMENT_DYNAMIC(CPerson, CObject)
注意
一律將IMPLEMENT_DYNAMIC放在實作檔中 (.您類別的 CPP。 IMPLEMENT_DYNAMIC宏應該只在編譯期間評估一次,因此不應該在介面檔案中使用 。可能包含在多個檔案中的 H。
新增動態建立支援
從
CObject
衍生您的類別。在類別宣告中使用 DECLARE_DYNCREATE 宏。
定義不含引數的建構函式(預設建構函式)。
在類別實作檔中使用 IMPLEMENT_DYNCREATE 宏。
新增序列化支援
從
CObject
衍生您的類別。覆寫
Serialize
成員函式。注意
如果您直接呼叫
Serialize
,也就是說,您不想透過多型指標序列化物件,請省略步驟 3 到 5。在類別宣告中使用 DECLARE_SERIAL 宏。
定義不含引數的建構函式(預設建構函式)。
在類別實作檔案中使用 IMPLEMENT_SERIAL 宏。
注意
「多型指標」指向類別的物件(稱為 A)或衍生自 A 的任何類別物件(例如 B)。 若要透過多型指標序列化,架構必須判斷它正在序列化之物件的執行時間類別 (B),因為它可能是衍生自某些基類的任何類別的物件 (A)。
如需如何從 CObject
衍生類別時啟用序列化的詳細資訊,請參閱 MFC 和 序列化 中的檔案文章 。