Určení úrovně funkcí
Tento článek popisuje, jak přidat následující úrovně funkčnosti vaše CObject-odvozené třídy:
Informace o spuštění třídy
Podpora dynamického vytváření
Podporu serializace
Obecný popis CObject funkcí, naleznete v článku odvození třídy z CObject.
Přidat informace o spuštění třídy
Odvození třídy z CObject, jak je popsáno v odvození třídy z CObject článek.
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 };
Použití IMPLEMENT_DYNAMIC makro v provádění souboru (.CPP) vaší třídy.Toto makro provede jako argumenty název třídy a základní třídy, takto:
IMPLEMENT_DYNAMIC( CPerson, CObject )
[!POZNÁMKA]
Vždy umístěte IMPLEMENT_DYNAMIC v provádění souboru (.CPP) pro třídu.IMPLEMENT_DYNAMIC By měly být hodnoceny pouze jednou během kompilace makro a proto se nedoporučují v souboru rozhraní (.H), který může potenciálně součástí více než jeden soubor.
Přidání podpory vytváření dynamických
Odvození třídy z CObject.
Použití DECLARE_DYNCREATE makro v deklaraci třídy.
Definujte konstruktor bez argumentů (výchozí konstruktor).
Použití IMPLEMENT_DYNCREATE v souboru třídy provádění makra.
Přidat podporu serializace
Odvození třídy z CObject.
Přepsat Serialize členské funkce.
[!POZNÁMKA]
Při volání Serialize přímo, to znamená, že nechcete k serializaci objektu prostřednictvím ukazatele polymorfní, vynechejte kroky 3 až 5.
Použití DECLARE_SERIAL makro v deklaraci třídy.
Definujte konstruktor bez argumentů (výchozí konstruktor).
Použití IMPLEMENT_SERIAL v souboru třídy provádění makra.
[!POZNÁMKA]
"Polymorfní ukazatel" odkazuje na objekt třídy (ji volat A) nebo na objekt žádné třídy odvozené od (říci, B).Serializovat prostřednictvím polymorfní ukazatele rozhraní musí být schopen určit spuštění třídy objektu od objektu žádné třídy odvozené od některé základní třídy (A) může být jeho je serializace (B).
Další podrobnosti o tom, jak povolit serializaci při odvození třídy z CObject, naleznete v článcích soubory v MFC a serializace.