2009-11-06 2 views
0

У меня есть переменные d'в пространстве имен в файле заголовка, и я пытаюсь инициализировать их в соответствующем файле cpp. Тем не менее, я продолжаю получать ошибку, указанную в заголовке темы. Я не уверен, в чем проблема.Ожидаемый конструктор, деструктор или преобразование типов перед '=' token

EX:

// Some header 
namespace foo 
{ 
    extern SDL_Surface* bar; 
} 

// In the impl file 
#include "someheader.h" 
foo::bar = 0; 
..... 

Любая помощь приветствуется. Благодарю.

+0

Итак, вы хотите инициализировать указатель на недопустимое представление указателя (NULL)? Зачем? –

+0

если вы помещаете это за пределы пространства имен, это сработает? – RageZ

+0

@Ed, это просто, чтобы проверить, было ли что-то инициализировано, это нормально, ему понадобится литье BTW – RageZ

ответ

4

На уровне файла вы можете определять типы (вы только написали выражение назначения). Поэтому вам необходимо изменить это на:

SDL_Surface* foo::bar = 0; 
+0

Отлично. Спасибо. – Anonymous

+0

Или ему придется переместить это утверждение в рамках любой из функций. – Technowise

+0

@Technowise - проблема в том, что он будет лишен определения переменной, и компоновщик потерпит неудачу с отсутствующим символом. –

0

Он не знает, какой тип SDL_Surface. Вам нужно определить его или, по крайней мере, переслать, объявить его.

+0

Пример был всего лишь примером, а не фактическим кодом. Я могу заверить вас, что он знает, что такое SDL_Surface. Я отредактирую пример, чтобы быть более понятным. – Anonymous

Смежные вопросы

 Смежные вопросы