簡體   English   中英

C ++左值作為一元'&'操作數需要

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM