我的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/