指定功能層級
本文說明如何加入下列層級功能加入至 CObject衍生類別:
執行階段類別資訊
動態建立支援
序列化支援。
如需 CObject 功能的一般說明,請參閱本文件的 從衍生類別 CObject。
將執行階段類別資訊
從 CObject衍生您自己的類別,如 從衍生類別 CObject 文件中所述。
使用 DECLARE_DYNAMIC 巨集在類別宣告,如下所示:
class CPerson : public CObject { DECLARE_DYNAMIC( CPerson ) // other declarations };
使用 IMPLEMENT_DYNAMIC 巨集在實作檔 (.CPP) 的類別。 這個巨集以做為引數類別和其基底類別的名稱,如下所示:
IMPLEMENT_DYNAMIC( CPerson, CObject )
注意事項 |
---|
永遠在實作檔 (.CPP) 的放置 IMPLEMENT_DYNAMIC 您的類別中。應該一次只能在編譯期間評估 IMPLEMENT_DYNAMIC 巨集也不應該使用介面檔 (。在多個檔案可能會包含的 H)。 |
將動態建立支援
從 CObject 衍生您的類別。
使用 DECLARE_DYNCREATE 巨集在類別宣告。
定義建構函式是不接收任何引數的建構函式(預設建構函式)。
使用 IMPLEMENT_DYNCREATE 類別實作檔中的巨集。
若要加入序列化支援
從 CObject 衍生您的類別。
覆寫 Serialize 成員函式。
注意事項 也就是說,如果您直接呼叫 Serialize 您不想將多型指標序列化物件,略過步驟 3 到步驟 5. 步驟。
使用 DECLARE_SERIAL 巨集在類別宣告。
定義建構函式是不接收任何引數的建構函式(預設建構函式)。
使用 IMPLEMENT_SERIAL 類別實作檔中的巨集。
注意事項 |
---|
對類別 (稱為物件的「多型指標」按它 A) 或是從 A 的任何衍生類別物件 (假設, B)。透過多型指標要序列化,架構必須判斷序列化 (b) 物件的執行階段類別,,因為它可以是從某些基底類別衍生的任何類別物件 ()。 |
如需更詳細的資訊是關於如何啟用序列化,請從 CObject衍生您自己的類別,請參閱文件 MFC 中的檔案 和 序列化。