C++ Builder 参考手册 ➙ System ➙ TObject ➙ ClassParent
头文件:#include <systobj.h>
命名空间:System
函数原型:
__classmethod TClass __fastcall ClassParent();
System::TObject::ClassParent 是 System::TObject 的成员函数,返回父类的类型信息。C++ 程序也可以使用 dynamic_cast 或 System::TObject::InheritsFrom 来判断类型。
例:获取一个控件的所有的父类一直到顶级父类
TObject::ClassParent 的返回值是 TClass 类型的。如果要用 c = c->ClassParent(); 向父类方向逐级访问,初始值需要用 ClassType 获取。
void __fastcall TForm1::Button4Click(TObject *Sender)
{
TObject *p = Button1;
TClass c = p->ClassType();
while(c)
{
Memo1->Lines->Add(c->ClassName());
c = c->ClassParent();
}
}
运行结果:可以看到,Button1 是 TButton 类,父类是 TCustomButton,TCustomButton 的父类是 TButtonControl,……一直到顶级父类 TObject。
参考:
- System::TObject::ClassName
- System::TObject::QualifiedClassName
- System::TObject::UnitName
- System::TObject::UnitScope
- System::TObject::ClassInfo
- System::TObject::ClassType
- System::TObject
- VCL 类继承关系
C++ Builder 参考手册 ➙ System ➙ TObject ➙ ClassParent