CRuntimeClass::IsDerivedFrom

Chiamare questa funzione per determinare se la classe chiamante è derivata dalla classe specificata nel parametro di pBaseClass .

BOOL IsDerivedFrom(
   const CRuntimeClass* pBaseClass 
) const;

Parametri

  • pBaseClass
    Il nome comune di una classe derivata da CObject.

Valore restituito

TRUE se la classe che chiama IsDerivedFrom è derivata dalla classe base della cui struttura CRuntimeClass viene fornita come parametro, in caso contrario FALSE.

Note

La relazione viene determinata "scorrendo" dalla classe del membro nella catena delle classi derivate da una modalità all'inizio.Questa funzione restituisce solo FALSE se non viene rilevata alcuna corrispondenza della classe base.

[!NOTA]

Per utilizzare la struttura CRuntimeClass, è necessario includere IMPLEMENT_DYNAMIC, IMPLEMENT_DYNCREATE, macro o IMPLEMENT_SERIALimplementazione della classe per il quale si desidera recuperare le informazioni di runtime dell'oggetto.

Per ulteriori informazioni su l CRuntimeClass, vedere l'articolo classe di CObject: Accedere a informazioni sulla classe di runtime.

Esempio

// 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();

Requisiti

Header: afx.h

Vedere anche

Riferimenti

Struttura di CRuntimeClass

Grafico della gerarchia