我正在嘗試使用SDL 2.0和O-OP。Singleton類,GraphicsManager和靜態
在這裏,我有一個CGraphicsManager類:
namespace tde {
class CGraphicsManager : public Singleton<CGraphicsManager>
{
private:
static SDL_Window* mWindow;
static SDL_Renderer* mRenderer;
public:
~CGraphicsManager();
static Uint32 Init(const char* title, Vector2i& size, Uint32 flags);
static SDL_Window* getWindow(){ return mWindow; }
static SDL_Renderer* getRenderer() { return mRenderer; }
};
}
,當我嘗試這樣做:
SDL_RenderClear(Graphics.getRenderer());
編譯器說:
錯誤C2248:辛格爾頓::辛格爾頓無法訪問Singleton中的私人成員<'tde :: CGraphicsManager'>
我試圖讓mWindow和mRenderer靜態成員,但這種方式不起作用。幫助我在此係統中以某種方式存儲窗口和渲染器,以使它們可見並可在tde命名空間中使用!
你的'Graphics'聲明在哪裏? –
或者更具體地說,你能告訴我們你是如何聲明'Graphics'的嗎? –
「#define Graphics tde :: CGraphicsManager :: getInstance()」 它位於全局命名空間的「Root.h」中。定義適合CRoot類的作品。 這裏是完成Root.h的鏈接:https://www.dropbox.com/s/ox2hvhqwo28jhfd/Singleton_SDL_static__Root.h.txt –