如何理解父类的水平
How to understand level of parent class
想象一下我有这样的类:
class Base
{
};
class D2: public Base
{
}
class D3: public D2
{
};
class D4: public D3
{
};
继续...
我有一个基类的指针列表。
假设我不知道这些类的继承顺序。我只能理解指针是否是给定类的实例。 (我无法手动检查,因为人们稍后会注册这些类)
例:
D3* d3 = new D3();
D2::isInstance(d3); //return true
D4::isInstance(d3); //return false
当我弹出基类的指针时,我想将其转换为大多数派生类。
主要问题:是否有一种C++方法可以理解 D3 是否继承自 D2?如果存在这样的方法,我可以解决。
谢谢。
由于您不检查特定对象,因此可以使用std::is_base_of
,它是编译时,因此是安全的。链接到参考。
相关文章:
- 从类继承时,继承的类是否会通过父类重新定义继承的变量
- 从父类方法返回子类对象
- c++, 在子类中,如何在没有对象的情况下访问父类的方法?
- 将父类对象强制转换为子类的问题
- 在运行时选择父类的实现
- 如何在C++子类中访问父类的私有变量
- 将父类的子类的数据复制到具有相同父类的另一个类
- 父类的私有函数会导致对具有相同名称和相似参数的子类中的公共函数的不明确调用
- C++ 将子类的对象添加到父类的向量中
- 两个父类的构造函数的序列
- 为什么我的子类不继承父类的字符串?
- C++调用使用重写函数的父类函数
- 在父类中公开受保护的构造函数
- 派生类调用父类的方法,该方法调用重写的虚拟方法调用错误的方法
- 如何使父类不重复已经执行的祖父方法
- 从模板化父类中的派生内部类访问受保护的成员变量
- Arduino在子类中使用父类方法
- 使用 Clang LibTooling 扫描C++在模板化父类中调用本地类的源
- 从父类的向量访问子类函数,而无需向下转换
- 如何理解父类的水平