我们如何检查两个类是不是继承自另一个?

Posted

技术标签:

【中文标题】我们如何检查两个类是不是继承自另一个?【英文标题】:How can we check two class are inherited from another?我们如何检查两个类是否继承自另一个? 【发布时间】:2020-02-05 09:43:51 【问题描述】:

我们如何编写一个函数,它接受两个不同类的两个参数,如果这两个类继承自另一个类,则该函数需要返回 true,否则返回 false。

【问题讨论】:

请添加一些细节,显示你想要实现的函数签名和你想要使用的类 看这里How can I get object types in C++? 这在编译时是已知的,因此该函数将始终返回相同的结果。为什么需要这样的功能? 【参考方案1】:

在标题中定义 <type_traits> 整数常量 std::is_base_of 如果您有静态类,可能会有用。如果您的案例是动态的,例如你必须检查指针是否指向从另一个类多态派生的类类型的对象,你可以使用dynamic_cast

【讨论】:

想要实现自己的功能而不是使用现有的 API

以上是关于我们如何检查两个类是不是继承自另一个?的主要内容,如果未能解决你的问题,请参考以下文章

如何判断一个 Swift 类是继承自另一个类还是符合协议?

如何在 Swift 5 中创建一个继承自另一个类的 UIImageView 类

Java基础——类的继承

如何让派生类使用基实现来满足接口

如何制作一个继承自另一个 UITableViewCell 的 UITableViewCell?

请解释python面向对象中的继承