Delen via


Functionaliteitsniveaus opgeven

In dit artikel wordt beschreven hoe u de volgende functionaliteitsniveaus toevoegt aan uw CObject-afgeleide klasse:

  • Informatie over klasse tijdens runtime

  • Ondersteuning voor dynamische creatie

  • Ondersteuning voor serialisatie

Zie het artikel CObject voor een algemene beschrijving van de functionaliteit.

Runtime-klassegegevens toevoegen

  1. Uw klas afleiden van CObject, zoals beschreven in het artikel Een klasse afleiden uit CObject .

  2. Gebruik de DECLARE_DYNAMIC macro in uw klassedeclaratie, zoals hier wordt weergegeven:

    class CPerson : public CObject
    {
       DECLARE_DYNAMIC(CPerson)
    
       // other declarations
    };
    
  3. Gebruik de macro IMPLEMENT_DYNAMIC in het implementatiebestand (. CPP) van uw klas. Deze macro gebruikt als argumenten de naam van de klasse en de basisklasse, als volgt:

    IMPLEMENT_DYNAMIC(CPerson, CObject)
    

Opmerking

Plaats IMPLEMENT_DYNAMIC altijd in het implementatiebestand (. CPP) voor uw klas. De IMPLEMENT_DYNAMIC macro mag slechts eenmaal worden geëvalueerd tijdens een compilatie en mag daarom niet worden gebruikt in een interfacebestand (. H) die mogelijk kan worden opgenomen in meer dan één bestand.

Ondersteuning voor dynamische creatie toevoegen

  1. Leid uw klasse af van CObject.

  2. Gebruik de macro DECLARE_DYNCREATE in de klassedeclaratie.

  3. Definieer een constructor zonder argumenten (een standaardconstructor).

  4. Gebruik de macro IMPLEMENT_DYNCREATE in het implementatiebestand van de klasse.

Serialisatieondersteuning toevoegen

  1. Leid uw klasse af van CObject.

  2. Overschrijf de Serialize-lidfunctie.

    Opmerking

    Als u Serialize rechtstreeks aanroept, met andere woorden, als u het object niet via een polymorfe pointer wilt serialiseren, laat dan stap 3 tot en met 5 weg.

  3. Gebruik de DECLARE_SERIAL macro in de klassedeclaratie.

  4. Definieer een constructor zonder argumenten (een standaardconstructor).

  5. Gebruik de IMPLEMENT_SERIAL macro in het klasse-implementatiebestand.

Opmerking

Een 'polymorf aanwijzer' verwijst naar een object van een klasse (noem het A) of naar een object van een klasse die is afgeleid van A (bijvoorbeeld B). Als u wilt serialiseren via een polymorfe aanwijzer, moet het framework de runtimeklasse bepalen van het object dat het serialiseert (B), omdat het een object kan zijn van een klasse die is afgeleid van een bepaalde basisklasse (A).

Voor meer informatie over het inschakelen van CObject wanneer u uw klasse afleidt van , zie de artikelen Bestanden in MFC en CObject.

Zie ook

Een klasse afleiden van CObject