TObject::InheritsFrom - C++ Builder

C++ Builder 参考手册SystemTObjectInheritsFrom


头文件:#include <systobj.h>
命名空间:System
函数原型:

__classmethod bool __fastcall InheritsFrom(TClass AClass);

System::TObject::InheritsFrom 是 System::TObject 的成员函数,当前对象的类是否从 AClass 继承过来的。

参数:
AClass:类

返回值:
如果 AClass 是这个类本身,这个类的父类、父类的父类,…… 一直到顶级父类,返回都为真,否则返回假。

  • 通过父类指针调用的 InheritsFrom 方法,执行的是子类的,即这个指针指向的实际的类的方法;
  • C++ 程序也可以使用 dynamic_cast 判断,和 InheritsFrom 的判断结果相同。

例:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    if(Sender->InheritsFrom(__classid(TWinControl)))
    {
        ShowMessage(L"InheritsFrom: Sender 是从 TWinControl 继承而来的");
    }
    else
    {
        ShowMessage(L"InheritsFrom: Sender 不是从 TWinControl 继承而来的");
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    if(dynamic_cast<TWinControl *>(Sender))
    {
        ShowMessage(L"dynamic_cast: Sender 是从 TWinControl 继承而来的");
    }
    else
    {
        ShowMessage(L"dynamic_cast: Sender 不是从 TWinControl 继承而来的");
    }
}

运行结果:

点击 Button1 用 InheritsFrom 判断的运行结果
点击 Button2 用 dynamic_cast 判断的运行结果

参考:


C++ Builder 参考手册SystemTObjectInheritsFrom

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容