Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du lägger till följande funktioner i din CObject-härledda klass:
Information om körningsklass
Stöd för dynamiskt skapande
Stöd för serialisering
En allmän beskrivning av CObject funktioner finns i artikeln Deriving a Class from CObject (Härled en klass från CObject).
Så här lägger du till information om körningsklass
Härled klassen från
CObject, enligt beskrivningen i artikeln Deriving a Class from CObject (Härled en klass från CObject ).Använd DECLARE_DYNAMIC makrot i klassdeklarationen, som du ser här:
class CPerson : public CObject { DECLARE_DYNAMIC(CPerson) // other declarations };Använd makrot IMPLEMENT_DYNAMIC i implementeringsfilen (. CPP) för din klass. Det här makrot tar som argument namnet på klassen och dess basklass enligt följande:
IMPLEMENT_DYNAMIC(CPerson, CObject)
Anmärkning
Placera alltid IMPLEMENT_DYNAMIC i implementeringsfilen (. CPP) för din klass. Det IMPLEMENT_DYNAMIC makrot bör bara utvärderas en gång under en kompilering och bör därför inte användas i en gränssnittsfil (. H) som potentiellt kan ingå i mer än en fil.
Lägga till stöd för dynamiskt skapande
Basera din klass på
CObject.Använd makrot DECLARE_DYNCREATE i klassdeklarationen.
Definiera en konstruktor utan argument (en standardkonstruktor).
Använd makrot IMPLEMENT_DYNCREATE i klassimplementeringsfilen.
Lägga till serialiseringsstöd
Basera din klass på
CObject.Åsidosätt
Serializemedlemsfunktionen.Anmärkning
Om du anropar
Serializedirekt, det vill säga att du inte vill serialisera objektet via en polymorf pekare, utelämna steg 3 till och med 5.Använd DECLARE_SERIAL makrot i klassdeklarationen.
Definiera en konstruktor utan argument (en standardkonstruktor).
Använd IMPLEMENT_SERIAL makrot i klassimplementeringsfilen.
Anmärkning
En "polymorf pekare" pekar på ett objekt i en klass (kalla den A) eller till ett objekt i en klass som härletts från A (till exempel B). För att serialisera genom en polymorf pekare måste ramverket fastställa körningsklassen för objektet som det serialiserar (B), eftersom det kan vara ett objekt från vilken klass som helst som härletts från en basklass (A).
Mer information om hur du aktiverar serialisering när du härleder din klass från CObjectfinns i artiklarna Filer i MFC och Serialisering.