CObject::GetRuntimeClass
オブジェクトのクラスに対応する CRuntimeClass 構造体を返します。
virtual CRuntimeClass* GetRuntimeClass( ) const;
戻り値
このオブジェクトのクラスに対応する CRuntimeClass 構造体へのポインターを返します。NULL になることはありません。
解説
CObject の各派生クラスには、それぞれ 1 つの CRuntimeClass 構造体が用意されています。 この構造体のメンバーを次に示します。
LPCSTR m_lpszClassName ASCII 文字でのクラス名を持つ NULL で終わる文字列です。
int m_nObjectSize オブジェクトのバイト単位のサイズです。 別に割り当てられたメモリへのポインターをオブジェクトがデータ メンバーとして持っている場合でも、そのメモリのサイズは含まれません。
UINT m_wSchema スキーマ番号です。-1 のときは、シリアル化できないクラスです。 スキーマ番号の説明については、「IMPLEMENT_SERIAL」マクロを参照してください。
CObject* ( PASCAL* m_pfnCreateObject )( ) 派生クラスのオブジェクトを構築する既定のコンストラクターへの関数ポインターです。クラスが動的に構築された場合のみ有効です。それ以外の場合は、NULL を返します。
CRuntimeClass* ( PASCAL* m_pfn_GetBaseClass )( ) アプリケーションが AFXDLL バージョンの MFC に動的にリンクされている場合、基本クラスの CRuntimeClass 構造体を返す関数へのポインターです。
CRuntimeClass* m_pBaseClass MFC に静的にリンクする場合、基本クラスの CRuntimeClass 構造体へのポインターです。
この関数は、クラスを実装する場合に IMPLEMENT_DYNAMIC、IMPLEMENT_DYNCREATE、または IMPLEMENT_SERIAL のいずれかのマクロを使用することが必要です。 使用しない場合は、正しい結果が得られません。
使用例
すべての CObject の例で使われている CAge クラスのリストについては、「CObList::CObList」を参照してください。
CAge a(21);
CRuntimeClass* prt = a.GetRuntimeClass();
ASSERT(strcmp(prt->m_lpszClassName, "CAge") == 0);
必要条件
**ヘッダー:**afx.h