我對使用C++的單例模式有個小問題。 比方說,我有下面的類:C++單例#define
namespace MyNameSpace
{
class Window_Singleton
{
private:
static Window_Singleton instance;
Window_Singleton();
/* Some more private stuff here */
public:
static Window_Singleton *GetInstance();
~Window_Singleton();
/* Some more public stuff here */
}
}
#define Window Window_Singleton.GetInstance()
我有這個#define
,使我並不總是有寫MyNameSpace::Window_Singleton.GetInstance().SomeMethod()
,我現在可以使用更短的MyNameSpace::Window.SomeMethod()
。
但問題是:現在我不能在另一個命名空間中創建一個Window類,因爲我會遇到定義問題。
有沒有辦法提供#define
沒有「打破」我的名字空間。某種「名稱空間本地」定義?
的方式不使'#define' 「破發」 的命名空間是不是在這裏使用一個'#define'。你主要用它混淆你的代碼,只是不這樣做,你不會有問題 – user463035818
但是,我沒有更短的方式來訪問我的單身人士 – danielspaniol
如果你懶得打字你應該使用IDE而不是讓你的代碼難以讀取和發送命名空間 – user463035818