【问题标题】:Sharing class variables between instances without using static在不使用静态的情况下在实例之间共享类变量
【发布时间】:2014-11-23 23:41:10
【问题描述】:

我的层次结构是这样的:

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

等等。还有一些代码:

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

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

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

【问题讨论】:

  • 将模型放入由某种实体 ID(例如其typeid)索引的字典中?

标签: c++ class static-members


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 2015-01-19
    • 2021-08-24
    • 1970-01-01
    相关资源
    最近更新 更多