[英]C++ lvalue required as unary '&' operand
我正在研究游戲引擎並致力於實現狀態設計。 我有一個Engine類,負責所有的所有初始化,並包含調用更新,渲染和處理活動狀態的輸入函數的游戲循環。
我所有不同的狀態都繼承自State,它需要在其構造函數中引用Engine類,以便初始化引擎的受保護引用以供將來使用。 這是相關的代碼:
// 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對象,這是報告錯誤的地方。
GameState *state = new GameState(&this);
我正在使用Linux上的Qt Creator編寫C ++代碼,現在無法訪問Windows機器以查看是否存在gcc問題。
更改:
GameState *state = new GameState(&this);
至:
GameState *state = new GameState(*this);
這是因為您通過引用將引擎傳遞給State類的構造函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.