Compartilhar via


CRuntimeClass::IsDerivedFrom

Chamar essa função para determinar se a classe de chamada é derivada da classe especificada no parâmetro de pBaseClass .

BOOL IsDerivedFrom(
   const CRuntimeClass* pBaseClass 
) const;

Parâmetros

  • pBaseClass
    Familiar o nome de uma classe derivada de CObject.

Valor de retorno

Verdadeiro se a classe que chama IsDerivedFrom é derivada da classe base cuja estrutura de CRuntimeClass é dada como um parâmetro; se não Falso.

Comentários

O relacionamento “é determinada por caminhando” de classe de membro acima da cadeia de classes derivadas qualquer forma à parte superior.Essa função retorna apenas Falso se nenhuma correspondência for encontrada para a classe base.

ObservaçãoObservação

Para usar a estrutura de CRuntimeClass , você deve incluir IMPLEMENT_DYNAMIC, IMPLEMENT_DYNCREATE, ou a macro de IMPLEMENT_SERIAL na implementação da classe que você deseja recuperar informações de objeto de tempo de execução.

Para obter mais informações sobre como usar CRuntimeClass, consulte o artigo classe de CObject: Acessando informações da classe de tempo de execução.

Exemplo

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

Requisitos

Cabeçalho: afx.h

Consulte também

Referência

Estrutura de CRuntimeClass

Gráfico de hierarquia