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
Odvodit třídu tak, ze CObject, jak je popsáno v odvození třídy od třídy CObject článku.
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 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í
Odvodit třídu tak, ze CObject.
Použití DECLARE_DYNCREATE makro v deklaraci třídy.
Definujte konstruktor bez argumentů (výchozí konstruktor).
Použití IMPLEMENT_DYNCREATE makra v souboru implementace třídy.
Chcete-li přidat podporu serializace
Odvodit třídu tak, ze CObject.
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.
Použití DECLARE_SERIAL makro v deklaraci třídy.
Definujte konstruktor bez argumentů (výchozí konstruktor).
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.