c++ - 在不使用静态的情况下在实例之间共享类变量

标签 c++ class static-members

我的层次结构是这样的:

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

等和一些代码:

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

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

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

最佳答案

在派生类的代码中你可以调用基类

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

关于c++ - 在不使用静态的情况下在实例之间共享类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27095806/

相关文章:

c++ - RE2C 如何丢弃当前匹配的规则并继续尝试?

c++ - 在 C++ 中使用链表作为类中的对象

php - 创建具有可变类名和命名空间的对象

c++ - 没有模板参数的模板类的容器

c++ - 重写 C++ 中的静态方法

c++ - 实现递归函数

c++ - 代码无法按预期使用虚函数和继承

oop - 元表在 Lua (5.2) 中为 OOP 服务的目的是什么?

具有私有(private)静态成员的 C++ "undefined references"

c++ - 标准似乎支持(下面的代码片段编译)一个与类本身具有相同类型的静态数据成员