2013-05-17 1 views
0

Моя следующая проблема связана с моим предыдущим вопросом here.Как передать глобальный указатель на SDL_Surface на функцию-рендеринг класса в C++?

Я хочу передать «глобальный» экран функции рендеринга класса. экран должен быть указателем на SDL_Surface, потому что начальная функция SDL_SetVideoMode возвращает указатель на SDL_Surface.

Должен ли я передавать экран (настроенный в int main() {}) ссылкой на функцию render?

void renderClass::render (SDL_Surface &screen){...} 

Edit: Или я должен использовать указатель ?:

void renderClass::render (SDL_Surface *screen){...} 

Или я просто использовать

extern SDL_Surface *screen; 

в каждом заголовке-файла. (Поскольку я использую несколько исходных файлов)

Или есть лучший способ? Я просто хочу избавиться от указателей.

+0

Лично я использую первую, передавая по ссылке отличную технику –

ответ

1

Я бы передал его вместе. Если вам когда-либо понадобится иметь два экрана (или окна), которые будут отображаться с использованием одной и той же функции, вам придется перепроектировать [кроме ужасающего использования глобальных переменных в целом].

Редактировать: И я не вижу смысла указывать его вместо ссылки. Под вещами это будет одно и то же.

+0

Хорошая точка. Благодарю. – user1511417

+0

@ user1511417 Просто добавил что-то о «указателе против ссылки». –