想象一下,我有这样的课程:
class Base
{
};
class D2: public Base
{
}
class D3: public D2
{
};
class D4: public D3
{
};
继续......
我有一个 Base 类的指针列表。
假设我不知道这些类的继承顺序。我只能理解指针是否是给定类的实例。 (我无法手动检查,因为人们将在以后注册这些课程)
示例:
D3* d3 = new D3();
D2::isInstance(d3); //return true
D4::isInstance(d3); //return false
当我弹出 Base 类的指针时,我想将它转换为大多数派生类。
主要问题: 有没有一个C ++方法,我可以理解D3是否继承自D2?如果有这样的方法我可以解决。
感谢。