Sdílet prostřednictvím


Odvození třídy z objektu CObject

Tento článek popisuje minimální kroky nezbytné k odvození třídy z třídy CObject.Ostatní CObject třídy články popisují kroky potřebné k využití konkrétní CObject funkce, jako je například serializace a diagnostické podporu ladění.

V diskusích o CObject, často používají termíny "soubor rozhraní" a "implementační soubor".Soubor rozhraní (často označovaný jako soubor záhlaví, nebo.Soubor H) obsahuje deklaraci třídy a dalších informací potřebných pro použití třídy.Implementační soubor (nebo.Soubor CPP) obsahuje definici třídy, jakož i kód, který implementuje členské funkce třídy.Například pro třídu s názvem CPerson, by obvykle vytvoříte soubor rozhraní s názvem osoby.H a implementační soubor s názvem osoby.CPP.Však pro některé malé třídy, které nejsou sdíleny mezi aplikacemi, je 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 běhové třídy informace nebo serializace ale zahrnuje diagnostiku paměti řízení.

  • Podpora běhové třídy informace plus základní funkce.

  • Podpora běhové třídy informace a dynamické vytvoření plus základní funkce.

  • Základní funkce a podporu pro běhovou třídou informace, dynamických a serializace.

Třídy určené pro opakované použití (ty, které později poslouží jako základní třídy) by měla obsahovat alespoň běhovou třídou podporu a podporu serializace Pokud se předpokládá nutnosti budoucí serializace.

Zvolte úroveň funkčnosti pomocí specifické deklaraci a implementaci makra v deklaraci a implementaci třídy jsou odvozeny z CObject.

Následující tabulka zobrazuje vztah mezi používá pro podporu serializace a informace o spuštění makra.

Používané 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

Chcete-li použít funkci základní třídy CObject

  • Použít normální syntaxe C++ odvození vaší třídy z CObject (nebo z odvozené třídy z CObject).

    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í však můžete chtít přepsat některé z CObjectna členské funkce pro zpracování specifika nové třídy.Například obvykle chcete přepsat Dump funkce CObject výstup ladění stanovit obsah vaší třídy.Podrobné informace o tom, jak přepsat Dump, naleznete v článku Diagnostika: dumpingu obsah objektu.Můžete také přepsat AssertValid funkce CObject poskytnout vlastní testování pro ověření konzistence dat členů třídy objektů.Popis toho, jak přepsat AssertValid, viz MFC ASSERT_VALID a CObject::AssertValid.

V článku Určení úrovně funkčnosti popisuje, jak určit další úrovně funkčnosti, včetně informací o běhové třídy, vytváření dynamických objektů a serializace.

Viz také

Koncepty

Použití objektů CObject