C ++使用member函数返回struct的指针属性的值

时间:2017-04-24 20:00:19

标签: c++ oop pointers struct sdl

我正在学习一些带有SDL的C ++,而且我遇到了一个令人困惑的问题。

我在头文件中有一个类:

SDL_Surface* loadImage(const char*);

class GameSystem
{
public:
    // Constructor
    GameSystem();
    // Destructor
    ~GameSystem();

    SDL_PixelFormat* screenFormat();
private:
    SDL_Window* m_window;
    SDL_Surface* m_screen;
}

// Global pointer for all to access
extern const GameSystem* g_gameSystem;

在构造函数中,m_window和m_screen初始化正常。在相应的源文件中,我定义了这个成员函数:

SDL_PixelFormat* GameSystem::screenFormat()
{

    return m_screen->format;
}

m_screen的结构如下:

typedef struct SDL_Surface
{
    Uint32 flags;               /**< Read-only */
    SDL_PixelFormat *format;    /**< Read-only */
    int w, h;                   /**< Read-only */
    int pitch;                  /**< Read-only */
    void *pixels;    
}

要运行它,在main()函数中,我得到一个GameSystem实例,然后将g_gameSystem从头文件指向该实例。像这样:

int main(int argc, char** argv)
{
    // Initialise the game system core
    GameSystem gameSystem;

    // Make the global gameSystem pointer point to this instance
    g_gameSystem = &gameSystem;

我的问题是:如何获取format属性的值以使用screenFormat函数,如下所示:g_gameSystem->screenFormat()

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

要回答您的实际问题,因为我假设m_screen已在您的构造函数中正确初始化:

g_gameSystem->screenFormat()->someVariable

另外,一些未经请求的建议,do not use Hungarian notation