C++ 返回类型‘;SDL_渲染器{aka struct SDL_渲染器}’;不完整

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 #

我正在使用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

#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条目: