次の方法で共有


CObject::GetRuntimeClass

 

このオブジェクトのクラスに対応する CRuntimeClass の構造体を返します。

構文

virtual CRuntimeClass* GetRuntimeClass( ) const;

戻り値

このオブジェクトのクラスに対応する CRuntimeClass の構造体へのポインター; は null

解説

CObjectCRuntimeClass の 1 個の構造体派生クラスがあります。 構成要素は次のとおりです:

  • ASCII のクラス名を含むLPCSTR m_lpszClassName の A によって null で終わる文字列。

  • int m_nObjectSize バイトのオブジェクトのサイズ。 オブジェクトに割り当てられたメモリを指すデータ メンバーがある場合、そのメモリのサイズは含まれません。

  • スキーマUINT m_wSchema 数 (– nonserializable クラスの場合は 1)。 スキーマ数の詳細については、IMPLEMENT_SERIAL のマクロを参照してください。

  • クラスが動的生成をサポートする場合にのみ、クラスのオブジェクトを作成するための既定のコンストラクターへのCObject* ( PASCAL* m_pfnCreateObject )( ) A の関数ポインター (有効な; それ以外の場合は null)。

  • アプリケーションが MFC の AFXDLL のバージョンと動的にリンクCRuntimeClass* ( PASCAL* m_pfn_GetBaseClass )( )、基本クラスの CRuntimeClass の構造体を返す関数へのポインター。

  • アプリケーションが MFC と静的にリンクCRuntimeClass* m_pBaseClass、基本クラスの CRuntimeClass の構造体へのポインター。

この関数は、クラスの実装の IMPLEMENT_DYNAMICIMPLEMENT_DYNCREATE、または IMPLEMENT_SERIAL マクロの使用が必要です。 不正な結果を別の方法で取得します。

使用例

CObject のすべての例で使用されている CAge のクラスのリストについては、CObList::CObList を参照してください。

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

必要条件

ヘッダー : afx.h

参照

CObject クラス
階層図
CObject::IsKindOf
RUNTIME_CLASS