c++ - 多重继承和多态性

标签 c++ polymorphism multiple-inheritance

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

相关文章:

c++ - 引用变量范围外

c++ - 为什么析构函数被调用了三次?

python - 具有多个基类的类中的继承属性问题

c# - 方法重载和多态性

JavaScript:X.prototype.x 也将 x 添加到基类

c++ - 虚函数和多重继承情况下的对象布局

python - 如何在 Python 中找到继承变量的来源?

c++ - 一元减号运算符如何与 C++ 中的整数文字一起使用?

c++ - 将#elif 与#ifdef 一起使用是否合法?

c++ - 设计一个将两个抽象基类对象作为参数的函数,并根据对象的派生类做不同的事情