Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Knihovna MFC (Microsoft Foundation Classes) se nadále podporuje. Už ale nepřidáme funkce ani aktualizujeme dokumentaci.
Tento článek popisuje minimální kroky potřebné k odvození třídy z objektu CObject. Další CObject články třídy popisují kroky potřebné k využití konkrétních CObject funkcí, jako je podpora serializace a diagnostického ladění.
V diskusích CObjectse často používají termíny "soubor rozhraní" a "implementační soubor". Soubor rozhraní (často označovaný jako hlavičkový soubor nebo . H soubor) obsahuje deklaraci třídy a všechny další informace potřebné k použití třídy. Soubor implementace (nebo . CPP soubor) obsahuje definici třídy a také kód, který implementuje členské funkce třídy. Například pro třídu s názvem CPersonbyste obvykle vytvořili soubor rozhraní s názvem PERSON. H a implementační soubor s názvem PERSON. CPP. Nicméně, pro některé malé třídy, které nebudou sdíleny mezi aplikacemi, je někdy jednodušší kombinovat rozhraní a implementace do jednoho . CPP soubor.
Při odvozování třídy z CObject si můžete vybrat ze čtyř úrovní funkčnosti:
Základní funkce: Žádná podpora pro informace o třídě za běhu nebo serializaci, ale zahrnuje diagnostickou správu paměti.
Základní funkce a podpora informací o třídách za běhu
Základní funkce a podpora informací o třídách za běhu a dynamického vytváření
Základní funkce a podpora informací o třídách za běhu, dynamického vytváření a serializace
Třídy navržené pro opakované použití (ty, které později budou sloužit jako základní třídy), by měly aspoň zahrnovat podporu a serializaci za běhu, pokud se očekává jakákoli budoucí potřeba serializace.
Pomocí specifických deklarací a implementačních maker v deklaraci a implementaci tříd odvozených z CObject vyberete úroveň funkčnosti.
Následující tabulka ukazuje vztah mezi makry používanými k podpoře serializace a informací o době běhu.
Makra použitá pro serializaci a informace o Run-Time
| Použité makro | Objekt CObject::IsKindOf | CRuntimeClass:: 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žití základních funkcí CObject
Použijte normální syntaxi jazyka C++ k odvození třídy (
CObjectnebo z třídy odvozené odCObject).Následující příklad ukazuje nejjednodušší případ, odvození třídy z
CObject:class CSimple : public CObject { // add CSimple-specific members and functions... };
Za normálních okolností ale můžete chtít některé členské CObjectfunkce přepsat, aby zvládly specifika vaší nové třídy. Můžete například obvykle chtít přepsat Dump funkci CObject pro poskytnutí ladicího výstupu obsahu vaší třídy. Podrobnosti o tom, jak přepsat Dump, viz článek Přizpůsobení výpisu stavu objektu. Také můžete chtít přepsat funkci AssertValid, abyste poskytli přizpůsobené testování CObject a ověřili konzistenci datových členů objektů třídy. Pokud chcete zjistit, jak přepsat AssertValid, podívejte se na MFC ASSERT_VALID a CObject::AssertValid.
Článek Určení úrovní funkčnosti popisuje, jak určit další úrovně funkcí, včetně informací o třídě za běhu, dynamického vytváření objektů a serializace.