我的 dizzyCreature
类继承自 creature
类和 dizzy
类。它也是 creature
类的多态集合的一部分。如果我知道我在 creature
类中的对象是 dizzyCreature
,有没有办法从 dizzy
类中调用函数?
我试过了
creature[2].dizzyCreature::someFunction();
和
dizzyCreature::creature[2].someFunction();
两者都不起作用。有什么想法吗?
最佳答案
如果我理解正确的话,你所拥有的是这样的:list<Creature*>
.此列表包含一些 dizzyCreature
实例。在那些你想调用 dizzy
的方法的实例上类(class)。如果这是目标,那么您可以使用 dynamic_cast
为了达成这个。假设你有 Create* pCreature
那么你可以这样做:
dizzyCreature* pDizzyCreature = dynamic_cast<dizzyCreature*>(pCreature);
if(pDizzyCreature )
{
pDizzyCreature->someDizzyClassMethod();
}
关于c++ - 多重继承和多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9493763/