如何在所有继承的类中调用函数?

时间:2014-06-16 20:58:11

标签: c++ class inheritance virtual-functions

例如,假设我有这个课程:

class base{
public:
    update();
};

我有很多继承自这个的类:

class A : public base 
{
    //<...>
}

class B : public base
{
    //<...>
}

所以我想知道 - 我可以以某种方式在所有类中调用函数base::update();而无需全部编写(A::update(); B::update();)等。 就像调用一个函数一样,它会在从基类继承它的所有类中执行update();

谢谢!

编辑: 我正在做的是将我的实体系统改为基于组件的系统,我想知道是否有更简单的方法来调用(比方说)update();在所有成员中继承的函数。而不是做enemy01.update(); enemy02.update();等,只写下一个更新();它适用于所有拥有它的类(继承它),类似于向所有类调用该函数的消息。

1 个答案:

答案 0 :(得分:2)

A virtual function

class base{
public:
    virtual void update();
};

然后这个功能:

void update_class(base &b) {
    return b.update();
}

您可以在任何继承update_class

的类上调用base