怎样在C++中查找对象的类型?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (54)

我有一个A类和另一个继承它的类B。我正在重写一个接受A类型的对象作为参数的函数,所以我必须接受一个A。但是,后来我调用了只有B的函数,所以如果传递的对象不是B类型,我想返回false,而不继续。

找出传递给我函数的对象类型的最好方法是什么?

提问于
用户回答回答于

dynamic_cast应该能做到这一点

TYPE& dynamic_cast<TYPE&> (object);
TYPE* dynamic_cast<TYPE*> (object);
用户回答回答于

动态强制转换是描述问题的最佳方法,可以通过以下方法找到类类型:

#include <typeinfo>

...
string s = typeid(YourClass).name()

扫码关注云+社区

领取腾讯云代金券