Freigeben über


Festlegen von Funktionalitätsebenen

Dieser Artikel wird beschrieben, wie der folgenden Ebenen der Funktionalität dem CObject abgeleiteten Klasse hinzufügen:

  • Ablaufklasseninformationen

  • Dynamische Erstellungsunterstützung

  • Die Serialisierungsunterstützung

Eine allgemeine Beschreibung von CObject-Funktionen, finden Sie im Artikel Ableiten einer Klasse von CObject.

So Ablaufklasseninformationen hinzufügen

  1. Ableiten der Klasse von CObject, wie im Artikel Ableiten einer Klasse von CObject beschrieben.

  2. Verwenden Sie das DECLARE_DYNAMIC-Makro in der Klassendeklaration, wie hier gezeigt:

    class CPerson : public CObject 
    {
       DECLARE_DYNAMIC( CPerson )
    
       // other declarations
    };
    
  3. Verwenden Sie das IMPLEMENT_DYNAMIC-Makro in der Implementierungsdatei (.CPP) der Klasse. Dieses Makro verwendet als Argumente den Namen der Klasse und ihrer Basisklasse, wie folgt:

    IMPLEMENT_DYNAMIC( CPerson, CObject )
    

Hinweis

Legen Sie IMPLEMENT_DYNAMIC immer in die Implementierungsdatei (.CPP) für die Klasse ein.Das Makro IMPLEMENT_DYNAMIC sollte nur einmal während einer Kompilierung ausgewertet werden und nicht in einer Schnittstellendatei deshalb verwendet werden (.H), die in mehr als einer Datei ggf. enthalten werden konnte.

Um dynamische Erstellungsunterstützung hinzufügen

  1. Ableiten der Klasse von CObject.

  2. Verwenden Sie das DECLARE_DYNCREATE-Makro in der Klassendeklaration.

  3. Definieren Sie einen Konstruktor ohne Argumente (ein Standardkonstruktor).

  4. Verwenden Sie das IMPLEMENT_DYNCREATE-Makro in der Klassenimplementierungsdatei.

So Serialisierungsunterstützung hinzufügen

  1. Ableiten der Klasse von CObject.

  2. Überschreiben Sie die Serialize-Memberfunktion.

    Hinweis

    Wenn Sie Serialize direkt d. h aufrufen möchten Sie nicht das Objekt über einen Zeiger polymorphen serialisieren, weglassen Schritte 3 bis 5.

  3. Verwenden Sie das DECLARE_SERIAL-Makro in der Klassendeklaration.

  4. Definieren Sie einen Konstruktor ohne Argumente (ein Standardkonstruktor).

  5. Verwenden Sie das IMPLEMENT_SERIAL-Makro in der Klassenimplementierungsdatei.

Hinweis

Ein "polymorpher Zeiger" zeigt auf ein Objekt eine Klasse (A Aufruf es) oder einem Objekt einer Klasse abgeleitet von A (Sie sagen, B).Um von polymorphen einen Zeiger zu serialisieren, muss das Framework die Laufzeitklasse des Objekts bestimmen, das sie (b) serialisiert, da möglicherweise ein Objekt einer beliebigen Klasse ist, die von einer Basisklasse (a) berechnet wird.

Weitere Informationen darüber, wie die Serialisierung, wenn Sie die Klasse von CObject ableiten, finden Sie in Artikel Dateien in MFC und Serialisierung.

Siehe auch

Konzepte

Ableiten einer Klasse von CObject