Aracılığıyla paylaş


CRuntimeClass::IsDerivedFrom

Arama sınıf belirtilen sınıf türetilir, belirlemek için bu işlev çağrısı pBaseClass parametresi.

BOOL IsDerivedFrom(
   const CRuntimeClass* pBaseClass 
) const;

Parametreler

  • pBaseClass
    Tanıdık bir sınıfın adını türetilen CObject.

Dönüş Değeri

DOĞRU , sınıf arama IsDerivedFrom in Temel'den türetilen whose sınıfı CRuntimeClass yapısı; parametre olarak verilen Aksi halde yanlış.

Notlar

İlişkinin "üyenin sınıftan türetilmiş sınıfları zinciri kurma tamamen üstüne yürüyen tarafından" belirlenir. Bu işlev yalnızca verdiği yanlış için temel sınıf eşleşme bulunursa.

Not

Kullanmak için CRuntimeClass yapısı, içermelidir IMPLEMENT_DYNAMIC, IMPLEMENT_DYNCREATE, ya da IMPLEMENT_SERIAL makro çalıştırma zamanında nesne bilgilerini almak istediğiniz sınıfı uygulamasında.

Daha fazla bilgi için CRuntimeClass, makalesine bakın CObject sınıfı: çalışma zamanı sınıfı bilgileri erişme.

Örnek

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

Gereksinimler

Başlık: afx.h

Ayrıca bkz.

Başvuru

CRuntimeClass yapısı

Hiyerarşi grafik