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

Моя следующая проблема связана с моим предыдущим вопросом класс по ссылке-i">здесь.

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

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

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

Изменить: или использовать указатель?:

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

Или я должен просто использовать

 extern SDL_Surface *screen;

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

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


person user1511417    schedule 17.05.2013    source источник
comment
Лично я использую первый, передача по ссылке — отличная техника.   -  person Thomas Ayoub    schedule 17.05.2013


Ответы (1)


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

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

person Mats Petersson    schedule 17.05.2013
comment
@ user1511417 Только что добавил кое-что об указателе и ссылке. - person Mats Petersson; 17.05.2013