2015-02-04 9 views
0

У меня есть переменная в файле main.cpp, как это:Доступ к переменной вне класса

SDL_Renderer* gRenderer = NULL; 

и у меня есть класс, который в отдельных файлах (а .h и .cpp файл). Внутри .cpp файла Я хочу, чтобы получить доступ к gRenderer так:

newTexture = SDL_CreateTextureFromSurface(gRenderer, loadedSurface); 

Я попытался положить SDL_Renderer внутри класса, но когда я компилирую это дает мне только одно предупреждение, что он не используется, и когда я запускаю программу I получить сообщение от SDL_GetError():

"Unable to create texture from colors.png! SDL Error: Invalid renderer"

Как я могу сделать это внутри класса, который в отдельных файлах?

+0

является 'gRenderer' NULL, когда вы передаете его в' SDL_CreateTextureFromSurface'? –

+0

Возможно, вам нужен только один рендер. – Julian

+0

Передайте переменную в конструктор класса или соответствующие функции. – molbdnilo

ответ

2

Для его доступа его файл должен быть включен в файл, который будет использоваться. Поэтому вы должны переместить объявление переменной в заголовочный файл (например, main.h) и включить его в main.ccp и в файлы, которые будут использоваться.

Чтобы сделать это, хотя, в заголовочном файле, вы должны объявить его как экстерном и в main.cpp, определяется обычно:

main.h 
extern SDL_Renderer* gRenderer; 

main.cpp 
SDL_Renderer* gRenderer = NULL; 

Таким образом, переменная определена и может быть использована для работы с несколькими файлы обычно сохраняют свое значение.

Если вы хотите получить больше информации: How do I use extern to share variables between source files?

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