C++ 有没有一种方法可以为本地作用域中的单例指定一个名称?
我有一个返回单例的方法C++ 有没有一种方法可以为本地作用域中的单例指定一个名称?,c++,singleton,C++,Singleton,我有一个返回单例的方法 // Window.h static Window &getSingleton(); // Window.cpp Window &Window::getSingleton() { static Window singleton; return singleton; } 例如,来自Objective-C我习惯于将单例赋值给局部范围变量名 UIApplication *application = [UIApplication
// Window.h
static Window &getSingleton();
// Window.cpp
Window &Window::getSingleton()
{
static Window singleton;
return singleton;
}
例如,来自Objective-C
我习惯于将单例赋值给局部范围变量名
UIApplication *application = [UIApplication sharedApplication];
但是在C++
中执行类似的操作会导致创建一个新对象
Window window = Window::getSingleton();
这是因为调用了复制构造函数,在本例中是Window(windowconst&windowCopy)
是否有办法绕过这个问题,或者当我需要与它交互时,我必须总是调用我的SuntLon方法吗?< /P> < P> C++,
Window window = <some expression>
在C++中,
Window window = <some expression>
那很容易。不使用从“代码> C<代码/代码>天的引用符号。@ MyCalWaldC没有引用,但是C++循环使用<代码>和<代码>符号来表示引用类型。这与操作符
&
的地址完全无关,它经常与之混淆。这很容易。不使用从“代码> C<代码/代码>天的引用符号。@ MyCalWaldC没有引用,但是C++循环使用<代码>和<代码>符号来表示引用类型。这与运算符&
的地址完全无关,它经常与之混淆。