Ожидаемый инициализатор перед пространством имен - PullRequest
3 голосов
/ 02 февраля 2012

Итак, я довольно новичок в программировании на C ++, но я широко использовал SDL с python и FreeBASIC. Я уверен, что мне здесь не хватает чего-то глупого, но, что бы я ни пытался, я получаю сообщение об ошибке «ошибка: ожидаемый инициализатор перед« пространством имен »» в моем файле video.h. Это сводит меня с ума.

#include "SDL/SDL.h"
#include <iostream>

namespace video {
// This is here because like video, everything uses it and the players should never be  able to touch it.
int rolldice(int minimumroll, int maximumroll, int numberofdice);
// Same Here.
char* charraystring(std::string prestring);
// Now we're in video proper
// This function loads an image, checks to make sure it works, returns the image, and unloads the testing surface.
SDL_Surface* loadimage(std::string path);
// This is an optimized blitter that will exit with a signal if it encounters an error.
void oblit(SDL_Surface* pic, SDL_Rect frame, SDL_Surface* screen, SDL_Rect location);
}

1 Ответ

11 голосов
/ 02 февраля 2012

Ошибка, которую вы предлагаете, error: expected initializer before ‘namespace’ предполагает, что существует объявление структуры или переменной, которое не завершено.Примерно так:

struct foo {
    ...
}

namespace video {
    ...

Здесь объявление struct foo не заканчивается точкой с запятой.Это должно выглядеть следующим образом:

struct foo {
    ...
};

namespace video {
    ...

Включение препроцессора (с использованием #include) усложняет отслеживание этого типа вещей.Возможно, вы включили заголовок (непосредственно перед объявлением namespace video), который не завершает определение структуры, например.

Идите и проверьте, что все ваши struct s и class У них есть точка с запятой после закрывающей фигурной скобки в ваших заголовках и исходных файлах.Аналогично любые объявления переменных, например

int value // <-- oops, forgot the ';'

namespace video {
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...