у меня есть Настройки игры учебный класс.
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
Это только строки функции инициализации ^
Ваши примеры кода неполные. Включаете ли вы заголовки для классов, которые хотите использовать? Когда вы видите ошибку вроде:
error C2065: 'currentGS' : undeclared identifier
или же
error C2228: left of '.loadSettings' must have class/struct/union
Это означает, что эти переменные или типы ( identifier
) не известны на данный момент — и общая причина этого заключается в том, что вы не включаете заголовочный файл, в котором объявлен идентификатор. Убедитесь, что вы на самом деле включаете заголовочные файлы, где вы объявляете свои переменные и типы.
Вы кладете const
в неправильном месте
Обновить:
void saveSettings(GameSettings & const GS);
^^^^^
чтобы:
void saveSettings(GameSettings const & GS);
^^^^^