Freigeben über


CObject::GetRuntimeClass

Gibt die CRuntimeClass-Struktur entsprechend dem Objekts zurück.

virtual CRuntimeClass* GetRuntimeClass( ) const;

Rückgabewert

Ein Zeiger auf die CRuntimeClass-Struktur entsprechend dem Objekts; nie NULL.

Hinweise

Es gibt eine CRuntimeClass-Struktur für jedes CObject von abgeleitete Klasse. Die Strukturmember sind, wie folgt:

  • Auf NULL endende Zeichenfolge LPCSTR m_lpszClassName A, die den ASCII-Klassennamen enthält.

  • int m_nObjectSize die Größe des Objekts, in Bytes. Wenn das Objekt Datenmember besitzt, die dem reservierten Speicher zeigen, wird die Größe des Arbeitsspeichers nicht eingeschlossen.

  • UINT m_wSchema die Schemazahl (- 1 für nonserializable Klassen). Siehe das IMPLEMENT_SERIAL-Makro für eine Beschreibung der Schemazahl.

  • Funktionszeiger CObject* ( PASCAL* m_pfnCreateObject )( ) A den Standardkonstruktor, der ein Objekt der Klasse erstellt (nur gültig, wenn die Klasse dynamische Erstellung unterstützt; andernfalls zurück NULL).

  • CRuntimeClass* ( PASCAL* m_pfn_GetBaseClass )( ), wenn die Anwendung dynamisch zur AFXDLL-Version von MFC verknüpft ist, ein Zeiger auf eine Funktion, die die CRuntimeClass-Struktur der Basisklasse zurückgibt.

  • CRuntimeClass* m_pBaseClass, wenn die Anwendung statisch mit MFC verknüpft ist, einen Zeiger auf die CRuntimeClass-Struktur der Basisklasse.

Diese Funktion erfordert die Verwendung von dem IMPLEMENT_DYNAMIC, IMPLEMENT_DYNCREATE oder IMPLEMENT_SERIAL-Makro in der Klassenimplementierung. Sie rufen falsche Ergebnisse andernfalls ab.

Beispiel

Siehe CObList::CObList für Listen der CAge-Klasse, die in allen CObject Beispielen verwendet wird.

CAge a(21);
CRuntimeClass* prt = a.GetRuntimeClass();
ASSERT(strcmp(prt->m_lpszClassName, "CAge")  == 0);   

Anforderungen

Header: afx.h

Siehe auch

Referenz

CObject-Klasse

Hierarchiediagramm

CObject::IsKindOf

RUNTIME_CLASS