STATIC_DOWNCAST

更新 : 2007 年 11 月

pobjectclass_name オブジェクトへのポインタにキャストします。

STATIC_DOWNCAST(class_name, pobject )

パラメータ

  • class_name
    キャストするクラスの名前。

  • pobject
    class_name オブジェクトへのポインタにキャストするポインタ。

解説

pobject には NULL 値を指定するか、直接または間接的に class_name から派生するクラスのオブジェクトへのポインタを指定する必要があります。_DEBUG プリプロセッサ シンボルを定義しているアプリケーションのビルドでは、pobjectNULL でない場合や、パラメータ class_name で指定されたクラスとは異なる種類のオブジェクトを指している場合に、マクロが ASSERT を発生します (「CObject::IsKindOf」を参照)。_DEBUG ビルドでない場合は、マクロは型をチェックせずにキャストします。

パラメータ class_name で指定されたクラスは、CObject から派生する必要があります。また、DECLARE_DYNAMIC マクロと IMPLEMENT_DYNAMIC マクロ、DECLARE_DYNCREATE マクロと IMPLEMENT_DYNCREATE マクロ、または DECLARE_SERIAL マクロと IMPLEMENT_SERIAL マクロのいずれかの組み合わせを使用する必要があります。「CObject Class: Deriving a Class from CObject」を参照してください。

たとえば、次の式を使用して pMyDoc と呼ばれる CMyDoc へのポインタを CDocument へのポインタにキャストできます。

CDocument* pDoc = STATIC_DOWNCAST(CDocument, pMyDoc);

pMyDoc が CDocument オブジェクトを直接または間接的に指していない場合、マクロは ASSERT を発生します。

必要条件

ヘッダー : afx.h

参照

概念

MFC マクロとグローバル

参照

DYNAMIC_DOWNCAST

static_cast Operator