可以说我有3种不同的职业:装备,武器和工具。武器和工具继承了装备。我创建了一个Weapon或Tool对象,并将其添加到Equipment数组。检索对象时,如何编写“IF”语句以检查该对象是武器还是工具?

谢谢

最佳答案

使用dynamic_cast,如下所示:

Equipment *pMyObj = ... //got it somewhere

Weapon *pWeapon = dynamic_cast<Weapon *>(pMyObj);

if( pWeapon != NULL ){
 //you have weapon
}

10-08 14:39