Freigeben über


STATIC_DOWNCAST

Typumwandlungen pobject zu einem Zeiger auf einen class_name-Objekt.

STATIC_DOWNCAST(class_name, pobject )

Parameter

  • class_name
    Der Name der Klasse, die für umgewandelt wird.

  • pobject
    Der einem Zeiger umgewandelt werden Zeiger, ein class_name-Objekt.

Hinweise

pobject muss entweder NULL sein, oder zeigen Sie auf ein Objekt eine Klasse, die direkt berechnet wird, oder indirekt, vom class_name. In den Builds der Anwendung mit dem definierten Präprozessorsymbol _DEBUG, wird das Makro ASSERT, wenn pobject nicht NULL ist oder wenn auf ein Objekt verweist, das keine "Art" Klasse ist, die im class_name-Parameter angegeben wird ( CObject::IsKindOf wird). In als _DEBUG Builds führt das Makro die Umwandlung ohne Typüberprüfung aus.

Die Klasse, die im class_name-Parameter angegeben wird, muss von CObject abgeleitet werden muss und DECLARE_DYNAMIC und IMPLEMENT_DYNAMIC, DECLARE_DYNCREATE und IMPLEMENT_DYNCREATE, oder die Makros DECLARE_SERIAL und IMPLEMENT_SERIAL verwenden, wie im Artikel CObject-Klasse: Ableiten einer Klasse von CObject erläutert.

Beispielsweise muss ggf. einen Zeiger in CMyDoc um, pMyDoc, auf einen Zeiger auf CDocument mithilfe dieses Ausdrucks:

CDocument* pDoc = STATIC_DOWNCAST(CDocument, pMyDoc);

Wenn pMyDoc nicht auf ein Objekt zeigt, das direkt oder indirekt von CDocument abgeleitet ist, wird das Makro ASSERT.

Anforderungen

Header: afx.h

Siehe auch

Referenz

DYNAMIC_DOWNCAST

static_cast-Operator

Konzepte

MFC-Makros, globale Funktionen und globale Variablen