可以想象我有这样的类:如何理解父类的水平
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继承或不?如果存在我可以解决的这种方法。
谢谢。
看看[链接](http://en.cppreference.com/w/cpp/types/is_base_of) – Incomputable
谢谢Olzhas。我认为这是答案 – ufukgun
理想情况下,你不需要知道派生类是什么。所有基类都需要使用所需的所有方法,而不必诉诸于确定其类型。这不是最佳实践。 – Neil