找出c ++中两个对象类之间的继承关系

fsc*_*itt 2 c++ reflection inheritance

我有一个抽象的C++基类CPlugin.从中可以直接和间接地衍生出许多类.现在给出CPlugin*a,*b我需要找出,如果一个真正的类来自b的真实类.

即我想做这样的事情:

void checkInheritance(CPlugin *a, CPlugin *b){
  if (getClass(a).isDerivedFrom(getClass(b)){
    std::cout << "a is a specialization from b's class" << std::endl;
  }
}
Run Code Online (Sandbox Code Playgroud)

但是如何在C++中实现"getClass"和"isDerivedFrom"?

Kar*_*nek 5

你不能用C++做到这一点.在运行时获取有关类型的一些信息的唯一方法是RTTI.虽然RTTI不够强大,无法满足您的需求.请解释一下你想要达到的目标,然后你会得到更好的答案.