Odvození třídy z CObject
Tento článek popisuje minimální kroky nezbytné k odvození třídy z CObject.Ostatní CObject třídy články popisují kroky potřebné využívat zvláštní CObject funkce, jako je například serializace a diagnostické podporu pro ladění.
V diskusích o CObject, jsou často používají termíny "soubor rozhraní" a "provádění souboru".Soubor rozhraní (často se označuje jako soubor záhlaví nebo.H soubor) obsahuje deklaraci třídy a dalších informací potřebných pro použití třídy.Provádění souboru (nebo.Soubor CPP) obsahuje definici třídy, jakož i kód, který implementuje funkce členů třídy.Například pro třídu s názvem CPerson, obvykle vytvoříte soubor rozhraní s názvem osoby.H a provádění souboru s názvem osoby.CPP.Pro některé malé třídy, které nebudou sdíleny mezi aplikacemi, je však někdy jednodušší rozhraní a implementace do jednoho.Soubor CPP.
Můžete zvolit ze čtyř úrovní funkčnosti při odvození třídy z CObject:
Základní funkce: Podpora třídy spuštění informací nebo serializace ale zahrnuje správu diagnostiku paměti.
Podpora spuštění třídy informace plus základní funkce.
Podpora pro třídy spuštění informací a vytváření dynamických plus základní funkce.
Podpora pro spuštění plus základní funkce třídy informací, vytváření dynamických a serializace.
Třídy určené pro opakované použití (ty, které bude později sloužit jako základní třídy) měly by přinejmenším zahrnovat spuštění třídy podporu a podporu serializace, pokud je předpokládaný budoucí serializace třeba.
Zvolte úroveň funkčnosti pomocí zvláštní prohlášení a provádění makra v prohlášení a provádění odvozena od třídy CObject.
Následující tabulka zobrazuje vztah mezi pro podporu serializace a informace o spuštění makra.
Pro serializaci a informace o spuštění makra
Použít makro |
CObject::IsKindOf |
CRuntimeClass:: Metoda CreateObject |
CArchive::operator >> CArchive::operator << |
---|---|---|---|
Základní CObject funkce |
Ne |
Ne |
Ne |
DECLARE_DYNAMIC |
Ano |
Ne |
Ne |
DECLARE_DYNCREATE |
Ano |
Ano |
Ne |
DECLARE_SERIAL |
Ano |
Ano |
Ano |
Použít základní funkce CObject
Použít normální syntaxe jazyka C++ k odvození třídy z CObject (nebo z třídy odvozené od CObject).
Následující příklad ukazuje nejjednodušším případě odvození třídy z CObject:
class CSimple : public CObject { // add CSimple-specific members and functions... };
Obvykle však můžete chtít přepsat některé CObject's členské funkce zpracování specifika nové třídy.Například obvykle chcete přepsat Dump funkce CObject výstupu ladění stanovit obsah vaší třídy.Podrobnosti o přepsání Dump, naleznete v článku Diagnostika: dumpingu obsah objektu.Můžete také změnit AssertValid funkce CObject poskytnout vlastní testování pro ověření konzistence dat členů třídy objektů.Popis jak přepsat AssertValid, viz MFC ASSERT_VALID a CObject::AssertValid.
V článku Určení úrovně funkčnosti popisuje, jak určit jiné úrovně funkčnosti, včetně informací o spuštění třídy, vytváření dynamických objektů a serializace.