Sdílet prostřednictvím


Určení úrovní funkčnosti

Tento článek popisuje, jak přidat následující úrovně funkcí vašeho třídy CObject-odvozené třídy:

  • Informace o spuštění třída

  • Podpora dynamických

  • Podporu serializace

Obecný popis CObject funkce, naleznete v článku odvození třídy od třídy CObject.

Chcete přidat informace o běhu třída

  1. Odvodit třídu tak, ze CObject, jak je popsáno v odvození třídy od třídy CObject článku.

  2. Použití DECLARE_DYNAMIC makro ve vaší deklaraci třídy, jak je znázorněno zde:

    class CPerson : public CObject 
    {
       DECLARE_DYNAMIC( CPerson )
    
       // other declarations
    };
    
  3. Použití IMPLEMENT_DYNAMIC makro do implementačního souboru (.CPP) vaší třídy.Toto makro bere jako argument název třídy a základní třídy, takto:

    IMPLEMENT_DYNAMIC( CPerson, CObject )
    

[!POZNÁMKA]

Vždy umístěte IMPLEMENT_DYNAMIC do implementačního souboru (.CPP) pro vaši třídu.IMPLEMENT_DYNAMIC By měly být hodnoceny pouze jednou během kompilace makro a proto nepoužívejte v souboru rozhraní (.H), který může potenciálně být součástí více než jeden soubor.

Chcete-li přidat podporu dynamického vytváření

  1. Odvodit třídu tak, ze CObject.

  2. Použití DECLARE_DYNCREATE makro v deklaraci třídy.

  3. Definujte konstruktor bez argumentů (výchozí konstruktor).

  4. Použití IMPLEMENT_DYNCREATE makra v souboru implementace třídy.

Chcete-li přidat podporu serializace

  1. Odvodit třídu tak, ze CObject.

  2. Přepsat Serialize členské funkce.

    [!POZNÁMKA]

    Pokud zavoláte Serialize přímo, to znamená, že nechcete, aby k serializaci objektu prostřednictvím ukazatele polymorfní, vynechejte kroky 3 až 5.

  3. Použití DECLARE_SERIAL makro v deklaraci třídy.

  4. Definujte konstruktor bez argumentů (výchozí konstruktor).

  5. Použití IMPLEMENT_SERIAL makra v souboru implementace třídy.

[!POZNÁMKA]

"Polymorfní ukazatel" odkazuje na objekt třídy (volání A) nebo na objekt žádné třídy odvozené z (říci, B).Serializovat prostřednictvím ukazatele polymorfní, musíte určit rámci běhovou třídou objektu je je serializace (B), protože může být libovolná třída odvozená z některé základní třídy (A) objektu.

Další informace o povolení serializace při odvození vaší třídy z CObject, naleznete v článcích soubory v knihovně MFC a serializace.

Viz také

Koncepty

Odvození třídy z objektu CObject