Freigeben über


CRuntimeClass::IsDerivedFrom

Rufen Sie diese Funktion, um zu bestimmen, ob die aufrufende Klasse von der Klasse abgeleitet ist, die im pBaseClass -Parameter angegeben wird.

BOOL IsDerivedFrom(
   const CRuntimeClass* pBaseClass 
) const;

Parameter

  • pBaseClass
    Der bekannte Name einer Klasse wird von abgeleitet CObject.

Rückgabewert

TRUE, wenn die Klasse, die IsDerivedFrom aufruft, von der Basisklasse abgeleitet wird, deren CRuntimeClass-Struktur als Parameter angegeben wird; andernfalls FALSE.

Hinweise

Die Beziehung wird ermittelt, indem der "bis" von der Klasse des Members die Kette der abgeleiteten Klassen zum Anfang durchläuft.Diese Funktion gibt nur FALSE zurück, wenn keine Übereinstimmung für die Basisklasse gefunden wird.

HinweisHinweis

Um die CRuntimeClass-Struktur zu verwenden, müssen Sie IMPLEMENT_DYNAMIC, IMPLEMENT_DYNCREATE oder IMPLEMENT_SERIAL-Makro in der Implementierung der Klasse enthalten die für Sie Ablaufobjektinformationen abrufen möchten.

Weitere Informationen zur Verwendung von CRuntimeClass, finden Sie im Artikel CObject-Klasse: Zugreifen auf Ablaufklasseninformationen.

Beispiel

// This example creates an object from the run-time class. It only 
// creates objects derived from CWnd.

// We only want to create an object derived from CWnd.
if (!pClass->IsDerivedFrom(RUNTIME_CLASS(CWnd)))
{
   TRACE(_T("Error; Object %s is not derived from CWnd\n"),
      pClass->m_lpszClassName);
   return FALSE;
}

// Get a pointer to the base class CRuntimeClass.
#ifdef _AFXDLL
   CRuntimeClass* pBaseClass = pClass->m_pfnGetBaseClass();
#else
   CRuntimeClass* pBaseClass = pClass->m_pBaseClass;
#endif
ASSERT(pBaseClass != NULL);

TRACE("Creating object %s derived from %s, with object size %d "
   "and schema %d\n", pClass->m_lpszClassName, 
   pBaseClass->m_lpszClassName, pClass->m_nObjectSize, 
   pClass->m_wSchema);

// Create the object.
CObject* pObject = pClass->CreateObject();

Anforderungen

Header: afx.h

Siehe auch

Referenz

CRuntimeClass-Struktur

Hierarchien-Diagramm