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



我有一个这样的层次结构:

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

等。还有一些代码:

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

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

因此,我想做的是能够使用基类的LoadModel()函数为特定的派生类加载模型。这可能吗?我将如何实现这一目标?

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

Derived d;
d.base::LoadModel();

最新更新