Partager via


CRuntimeClass::IsDerivedFrom

Appelez cette fonction pour déterminer si la classe appelante est dérivée de la classe spécifiée dans le paramètre de pBaseClass .

BOOL IsDerivedFrom(
   const CRuntimeClass* pBaseClass 
) const;

Paramètres

  • pBaseClass
    Le nom connu d'une classe dérivée d' CObject.

Valeur de retour

TRUE si la classe appelant IsDerivedFrom est dérivée de la classe de base dont la structure d' CRuntimeClass est spécifiée comme paramètre ; sinon FALSE.

Notes

La relation est déterminée « en » marchant de la classe du membre en haut de la chaîne des classes dérivées complètement en haut.Cette fonction retourne uniquement FALSE si aucune correspondance n'est trouvée pour la classe de base.

[!REMARQUE]

Pour utiliser la structure d' CRuntimeClass , vous devez inclure IMPLEMENT_DYNAMIC, IMPLEMENT_DYNCREATE, la macro ou d' IMPLEMENT_SERIAL dans l'implémentation de la classe pour laquelle vous souhaitez récupérer des informations sur l'objet à l'exécution.

Pour plus d'informations sur l'utilisation CRuntimeClass, consultez l'article classe de CObject : Les informations sur la classe à l'exécution d'accès.

Exemple

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

Configuration requise

Header: afx.h

Voir aussi

Référence

Structure de CRuntimeClass

Graphique de la hiérarchie