C++ 返回类型‘;SDL_渲染器{aka struct SDL_渲染器}’;不完整
我正在使用SDL2。我希望能够使用成员函数访问私有成员C++ 返回类型‘;SDL_渲染器{aka struct SDL_渲染器}’;不完整,c++,sdl,sdl-2,C++,Sdl,Sdl 2,我正在使用SDL2。我希望能够使用成员函数访问私有成员\u渲染器 以下是相关代码: Graphics.h #ifndef GRAPHICS_H #define GRAPHICS_H class Graphics { public: Graphics(); ~Graphics(); SDL_Renderer getRenderer(); private: SDL_Renderer *_renderer; #endif Graphics.cpp #
\u渲染器
以下是相关代码:
Graphics.h
#ifndef GRAPHICS_H
#define GRAPHICS_H
class Graphics {
public:
Graphics();
~Graphics();
SDL_Renderer getRenderer();
private:
SDL_Renderer *_renderer;
#endif
Graphics.cpp
#include <SDL2/SDL.h>
#include "Graphics.h"
SDL_Renderer Graphics::getRenderer(){
return _renderer;
}
如何修复此问题,以便
getRenderer()
返回渲染器?SDL头文件不提供SDL\u渲染器的定义。它是不透明类型,只能通过指针或引用传递。将函数的返回类型更改为SDL\u渲染器*
SDL_Renderer* Graphics::getRenderer(){
return _renderer;
}
SDL头文件不提供SDL\u渲染器的定义。它是不透明类型,只能通过指针或引用传递。将函数的返回类型更改为SDL\u渲染器*
SDL_Renderer* Graphics::getRenderer(){
return _renderer;
}
成功了!你能告诉我你说的“不透明类型”是什么意思吗?我是C++和SDL2的新手,所以我希望能尽早了解事物,以避免坏习惯。@用户名:一个不能直接访问的不透明类型,因为它的定义对你来说是不可用的。请注意,您从不访问SDL\u呈现程序
对象的任何成员(即\u呈现程序->某个成员
),只能通过指针将其传递给函数。上面有一个维基条目:它成功了!你能告诉我你说的“不透明类型”是什么意思吗?我是C++和SDL2的新手,所以我希望能尽早了解事物,以避免坏习惯。@用户名:一个不能直接访问的不透明类型,因为它的定义对你来说是不可用的。请注意,您从不访问SDL\u呈现程序
对象的任何成员(即\u呈现程序->某个成员
),只能通过指针将其传递给函数。上面有一个wiki条目: