我的dizzyCreature类继承自creature类和dizzy类。它也是creature类的多态集合的一部分。如果我知道creature类中的对象是dizzyCreature,是否可以从dizzy类中调用函数?
我试过了

creature[2].dizzyCreature::someFunction();




dizzyCreature::creature[2].someFunction();


都行不通。有任何想法吗?

最佳答案

如果我正确理解您所拥有的是这样的:list<Creature*>。此列表包含一些dizzyCreature实例。在那些实例上,您想调用dizzy类的方法。如果这是目标,则可以使用dynamic_cast来实现。假设您有Create* pCreature,则可以执行以下操作:

dizzyCreature* pDizzyCreature = dynamic_cast<dizzyCreature*>(pCreature);
if(pDizzyCreature )
{
  pDizzyCreature->someDizzyClassMethod();
}

关于c++ - 多重继承和多态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9493763/

10-10 06:51