指定功能層級

這篇文章說明如何加入下列層級的功能,以您 CObject-衍生的類別:

  • 執行階段類別資訊

  • 動態建立支援

  • 序列化支援

如需一般的說明CObject的功能,請參閱文件衍生、 cobject 的類別

若要新增 run-time 類別資訊

  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),或是衍生自 (例如,B) 的任何類別的物件。若要將序列化透過多型指標,其架構必須決定它正在序列化 (B),因為它可能是衍生自某些基底類別 (A) 的任何類別的物件之物件的執行階段類別。

如需詳細資訊,當您在衍生類別中的啟用序列化的CObject,請參閱文件檔案,在 MFC 中的序列化

請參閱

概念

從 CObject 衍生出類別