我对使用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