我正在研究游戏引擎并致力于实现状态设计。我有一个引擎类负责所有的初始化操作,并包含调用更新,渲染和处理活动状态输入函数的游戏循环。需要作为一元'&'操作数的C++左值
我所有不同的状态都继承自需要引用Engine类的State,以便初始化引擎的保护引用以供将来使用。下面是相关的代码:
// file: state.h
class Engine;
class State {
public:
State(Engine &engine) : mEngine(engine) { }
protected:
Engine &mEngine;
};
// file: gamestate.h
class GameState : public State {
public:
GameState(Engine &engine) : State(engine) {}
};
终于在初始化engine.cpp我创建了一个新的游戏状态的对象,这是其中报告的错误。
GameState *state = new GameState(&this);
我编码在C++在Linux上使用Qt创建者在一分钟,没有进入到Windows机器现在就看它是否与海湾合作委员会还是不成问题的。
为什么不具有外部全局指针而不是成员指针? –
@ Shaktal不,不可能选择一个引擎。注射是一件好事。和全局变量肯定是一件坏事。事实上,“国家”甚至不应该是引擎的一员。而且C++是一种现代语言,不要再用指针来搞乱你不需要的!为什么不简单'引擎引擎; GameState状态(引擎)'? – log0