0
我隔壁班:使用引用變量或給他們的功能參數
class State {
public:
State(StateMachine& machine, sf::RenderWindow& window)
: mMachine { machine }
, mWindow { window } { }
void draw();
protected:
StateMachine& mMachine;
sf::RenderWindow& mWindow;
std::vector<std::unique_ptr<Scene>> m_scenes;
};
在繪製函數我遍歷向量m_scenes
和調用函數drawScene()
,但現場類需要sf::RenderWindow
以畫。
創建新場景時,我應該發送mWindow
嗎?
class Scene {
public:
Scene(sf::RenderWindow& window)
: mWindow { window } { }
void drawScene() {
mWindow.draw(...);
}
protected:
sf::RenderWindow& mWindow;
};
或者作爲參數發送mWindow
會更好嗎?
class Scene {
public:
Scene() {}
void drawScene(sf::RenderWindow& window) {
window.draw(...);
}
};
或者我應該在類中創建State
一個getter和發送的State
類的引用?
class State {
public:
State(...);
sf::RenderWindow& getWindow() { return mWindow; }
};
class Scene {
public:
Scene(State& state)
: mState { state } {}
void drawScene() {
mState.getWindow().draw(...);
}
protected:
State& mState;
};
如果我使用一個getter,它會減慢代碼?
只要做你喜歡的任何一個。吸氣劑不會減慢你的程序。 –