草庐IT

C++:识别对象的类型

我很好奇在当前的C++和C++11中都可以使用哪些构造或语言功能来推断对象的类型。一个例子:classBase{};classDerivA:publicBase{};classDerivB:publicBase{};voidfoo(Base*obj){//Identifyif`obj`isa`DerivA`ora`DerivB`}这是过于简单化了。看起来最好的解决方案不是有一种方法来识别类型,而是为两个派生类型重载函数并取消基类。我的真实用例是一个类对对象的确切类型不感兴趣(即只需要Base的实现)而另一个类需要确切地知道的实现是什么code>Base第一个类正在使用。这发生在基于组件