不使用静态在实例之间共享类变量

时间:2014-11-23 23:41:10

标签: c++ class static-members

我的层次结构如下:

       Entity
   /     |     \
Player Enemy Weapon
        /\        /  \
    Slime Fly  Sword  Gun

等。还有一些代码:

class Entity {
public:
    void LoadModel();
protected:
    Model* model;
}

每个Entity类都有自己的模型,或者至少,它是我希望它如何工作的 - 问题是,如果我要将模型静态化为类,我会重复代码在每个派生类中定义静态模型,然后在每个类中都有一个虚函数来返回它,以便基类Entity类可以使用它的加载函数等。

所以我想要做的是能够使用基类的LoadModel()函数来加载特定派生类的模型。这可能吗?我怎么做到这一点?

1 个答案:

答案 0 :(得分:0)

在派生类的代码中,您可以使用

调用基类
Derived d;
d.base::LoadModel();