CRuntimeClass::IsDerivedFrom
Volat tato funkce, pokud je volající Třída odvozená ze třídy zadané pBaseClass parametr.
BOOL IsDerivedFrom(
const CRuntimeClass* pBaseClass
) const;
Parametry
- pBaseClass
Známé název třídy odvozené od CObject .
Vrácená hodnota
TRUE Pokud volací třídy IsDerivedFrom je odvozen ze základní třídy, jejichž CRuntimeClass struktury je uveden jako parametr; jinak FALSE.
Poznámky
Relace je určena "chodí" z třídy člena nahoru v řetězu odvozených tříd až na začátek.Tato funkce vrací pouze FALSE Pokud nebude nalezena žádná shoda pro základní třídy.
[!POZNÁMKA]
Použít CRuntimeClass struktury, musí být IMPLEMENT_DYNAMIC , IMPLEMENT_DYNCREATE , nebo IMPLEMENT_SERIAL makro v implementaci třídy, pro které chcete získat informace o spuštění objektu.
Další informace o použití CRuntimeClass , naleznete v článku CObject třídy: přístup k běhu informace třídy.
Příklad
// 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();
Požadavky
Záhlaví: afx.h