我正在研究遊戲引擎並致力於實現狀態設計。我有一個引擎類負責所有的初始化操作,幷包含調用更新,渲染和處理活動狀態輸入函數的遊戲循環。需要作爲一元'&'操作數的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