如何将指向SDL_Surface的"global"指针传递给 C++ 中类的渲染函数?

How can I pass a "global" pointer to a SDL_Surface to a render-function of a class in C++?

本文关键字:C++ 函数 global SDL Surface 指针      更新时间:2023-10-16

我下面的问题与我之前的问题有关。

我想传递一个"全局"屏幕给一个类的渲染函数。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;

在每个头文件中。(因为我使用多个源文件)

还是有更好的方法?我只是想去掉指针

我会把它传递下去。如果您需要使用相同的函数呈现两个屏幕(或窗口),则必须重新构建[除了通常使用全局变量的可怕之处]。

编辑:我不认为把它作为一个指针而不是引用有任何意义。下面的内容也一样