我有GameSettings類。在類中被拒絕的用戶指定類型的遏制
GameSettings.hpp
class GameSettings
{
public:
GameSettings();
GameSettings loadSettings();
void saveSettings(GameSettings const & GS);
sf::VideoMode getVideoMode() const {return VMode;}
bool isFullscreen() const {return fullscreen;}
private:
sf::VideoMode VMode;
bool fullscreen;
};
一個GameSettings包含在遊戲類(Game類是的Monostate):
Game.hpp
class Game
{
public:
Game() {};
static void init();
static void run();
static void clean();
private:
static sf::Window window;
static GameSettings currentGS;
};
這裏是初始化函數的執行(只執行功能的遊戲類還):
Game.cpp
void Game::init()
{
currentGS.loadSettings();
sf::Uint32 style = currentGS.isFullscreen() ? sf::Style::Fullscreen : sf::Style::None | sf::Style::Close;
window.create(currentGS.getVideoMode(), "Name", style);
}
而且我得到這些錯誤:
遊戲.hpp:
(兩次)錯誤C2146:語法e rror:失蹤';'識別符 'currentGS' 前 - 線15
(兩次)錯誤C4430:缺少類型說明 - 假定爲int。注意:C++不支持默認int - 線15
線15:static GameSettings currentGS;
Game.cpp
錯誤C2065: 'currentGS':未聲明的標識符 - 第7,8,9行
錯誤C2228:左「.loadSettings'必須有類/結構/聯合 - 7號線,8,9
這些只是初始化函數的行^
您的代碼示例不完整。你是否包含你想要使用的類的頭文件?如果你是,爲什麼你的代碼樣本不反映? –
哦,是的,我沒有粘貼#include命令。最後我發現我忘了一個。非常感謝。把它寫成答案,我將其標記爲正確的答案。 – sjaustirni
謝謝。我已經發表了我的評論作爲答案並擴展了一下。 –