在C++中,如何检查对象的类型是否继承自特定类?
class Form { };
class Moveable : public Form { };
class Animatable : public Form { };
class Character : public Moveable, public Animatable { };
Character John;
if(John is moveable)
// ...
在我的实现中if
查询对 a 的所有元素执行Form
列表。继承该类型的所有对象Moveable
可以移动并需要处理其他对象不需要的内容。
你需要的是dynamic_cast
。在其指针形式中,如果无法执行强制转换,它将返回空指针:
if( Moveable* moveable_john = dynamic_cast< Moveable* >( &John ) )
{
// do something with moveable_john
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)