我正在学习一些带有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()
非常感谢提前。
答案 0 :(得分:0)
要回答您的实际问题,因为我假设m_screen
已在您的构造函数中正确初始化:
g_gameSystem->screenFormat()->someVariable
另外,一些未经请求的建议,do not use Hungarian notation。