我有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类中(Game 类是Monostate):
游戏.hpp
class Game
{
public:
Game() {};
static void init();
static void run();
static void clean();
private:
static sf::Window window;
static GameSettings currentGS;
};
下面是 init 函数的实现(目前只在 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:语法错误:缺少 ';' 在标识符“currentGS”之前 -第 15 行
(两次)错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int -第 15 行
第 15 行:static GameSettings currentGS;
游戏.cpp
错误 C2065:'currentGS':未声明的标识符 -第 7、8、9 行
错误 C2228:“.loadSettings”左侧必须有类/结构/联合 -第 7、8、9 行
这些只是初始化函数的行^