检查对象的类型是否继承自特定类

2024-03-27

在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(使用前将#替换为@)

检查对象的类型是否继承自特定类 的相关文章

随机推荐