Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 有没有一种方法可以为本地作用域中的单例指定一个名称?_C++_Singleton - Fatal编程技术网

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++循环使用<代码>和<代码>符号来表示引用类型。这与运算符
&
的地址完全无关,它经常与之混淆。