Сохранение указанного пользователем типа запрещено в классе

у меня есть Настройки игры учебный класс.

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;

};

Один Настройки игры содержится в Игра класс (игровой класс Monostate):

Game.hpp

class Game
{
public:
Game() {};

static void init();
static void run();
static void clean();
private:
static sf::Window window;
static GameSettings currentGS;
};

Вот реализация функции init (пока только реализованная функция в классе Game):

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);

}

И я получаю эти ошибки:

Game.hpp:

(дважды) ошибка C2146: синтаксическая ошибка: отсутствует ‘;’ перед идентификатором ‘currentGS’ — Строка 15

(дважды) ошибка C4430: отсутствует указатель типа — предполагается int. Примечание: C ++ не поддерживает default-int — Строка 15

Строка 15: static GameSettings currentGS;

Game.cpp

ошибка C2065: ‘currentGS’: необъявленный идентификатор — Строки 7, 8, 9

ошибка C2228: слева от .loadSettings должен быть класс / структура / объединение — Строка 7, 8, 9

Это только строки функции инициализации ^

0

Решение

Ваши примеры кода неполные. Включаете ли вы заголовки для классов, которые хотите использовать? Когда вы видите ошибку вроде:

error C2065: 'currentGS' : undeclared identifier

или же

error C2228: left of '.loadSettings' must have class/struct/union

Это означает, что эти переменные или типы ( identifier) не известны на данный момент — и общая причина этого заключается в том, что вы не включаете заголовочный файл, в котором объявлен идентификатор. Убедитесь, что вы на самом деле включаете заголовочные файлы, где вы объявляете свои переменные и типы.

1

Другие решения

Вы кладете const в неправильном месте

Обновить:

void saveSettings(GameSettings & const GS);
^^^^^

чтобы:

void saveSettings(GameSettings const & GS);
^^^^^
1

По вопросам рекламы [email protected]