C++ Builder 參考手冊(cè) ? System ? TObject ? InheritsFrom
頭文件:#include <systobj.h>
命名空間:System
函數(shù)原型:
__classmethod bool __fastcall InheritsFrom(TClass AClass);
System::TObject::InheritsFrom 是 System::TObject 的成員函數(shù)寺枉,當(dāng)前對(duì)象的類(lèi)是否從 AClass 繼承過(guò)來(lái)的愁拭。
參數(shù):
AClass:類(lèi)
返回值:
如果 AClass 是這個(gè)類(lèi)本身,這個(gè)類(lèi)的父類(lèi)吓蘑、父類(lèi)的父類(lèi),…… 一直到頂級(jí)父類(lèi),返回都為真,否則返回假闻坚。
- 通過(guò)父類(lèi)指針調(diào)用的 InheritsFrom 方法,執(zhí)行的是子類(lèi)的兢孝,即這個(gè)指針指向的實(shí)際的類(lèi)的方法鲤氢;
- C++ 程序也可以使用 dynamic_cast 判斷,和 InheritsFrom 的判斷結(jié)果相同西潘。
例:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(Sender->InheritsFrom(__classid(TWinControl)))
{
ShowMessage(L"InheritsFrom: Sender 是從 TWinControl 繼承而來(lái)的");
}
else
{
ShowMessage(L"InheritsFrom: Sender 不是從 TWinControl 繼承而來(lái)的");
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(dynamic_cast<TWinControl *>(Sender))
{
ShowMessage(L"dynamic_cast: Sender 是從 TWinControl 繼承而來(lái)的");
}
else
{
ShowMessage(L"dynamic_cast: Sender 不是從 TWinControl 繼承而來(lái)的");
}
}
運(yùn)行結(jié)果:
參考:
- System::TObject::ClassParent
- System::TObject::ClassName
- System::TObject::ClassNameIs
- System::TObject::QualifiedClassName
- System::TObject::UnitName
- System::TObject::UnitScope
- System::TObject::ClassInfo
- System::TObject::ClassType
- System::TObject
- VCL 類(lèi)繼承關(guān)系
C++ Builder 參考手冊(cè) ? System ? TObject ? InheritsFrom