C++ 单例模式使用;类别及;类::函数();?为什么是引用而不是指针?

C++ 单例模式使用;类别及;类::函数();?为什么是引用而不是指针?,c++,singleton,C++,Singleton,有人能告诉我下面的代码是什么意思吗?它看起来像单例模式,但使用&而不是指针 class Class { public: static Class &Function(); } Class &Class::Function() { static Class class1; return class1; } Singleton是程序员提出的一个想法。这意味着它在后面没有特定的形式(特别是处理C++指针和引用),而且只有它的规则集。 您前面看到的代码意味着在调用函数时创建一

有人能告诉我下面的代码是什么意思吗?它看起来像单例模式,但使用&而不是指针

class Class
{
 public:
 static Class &Function();
}

Class &Class::Function()
{
 static Class class1;
 return class1;
}

Singleton是程序员提出的一个想法。这意味着它在后面没有特定的形式(特别是处理C++指针和引用),而且只有它的规则集。
您前面看到的代码意味着在调用函数时创建一个静态变量,并将其保留到整个程序结束。通过引用指针返回它并不重要。它只保存一个指定的单个对象,该对象在作用域结束后不会被销毁(因为静态声明),并且只返回该对象。当然,您可以将其作为私有变量,并在有人要调用函数时返回它。但是,这始终取决于用户自己。请注意这个问题:

单例是程序员提出的一个想法。这意味着它在后面没有特定的形式(特别是处理C++指针和引用),而且只有它的规则集。
您前面看到的代码意味着在调用函数时创建一个静态变量,并将其保留到整个程序结束。通过引用指针返回它并不重要。它只保存一个指定的单个对象,该对象在作用域结束后不会被销毁(因为静态声明),并且只返回该对象。当然,您可以将其作为私有变量,并在有人要调用函数时返回它。但是,这始终取决于用户自己。请注意这个问题:

是的,这是一个单例模式。我更新了标题,因为更集中/相关的问题是为什么引用与指针相对。或者,也许不是。欢迎阅读堆栈溢出。它将类定义为
static
,这意味着一旦实例化,它就永远在那里。它不会再创建它了。如果不使用
static
,每次都会得到一个新类。符号的意思是返回对它的引用。如果你不这样做,你会得到一个简单的类副本。是的,这是一个单例模式。我更新了标题,因为更集中/相关的问题是为什么引用与指针相对。或者,也许不是。欢迎阅读堆栈溢出。它将类定义为
static
,这意味着一旦实例化,它就永远在那里。它不会再创建它了。如果不使用
static
,每次都会得到一个新类。符号的意思是返回对它的引用。如果你不那样做,你会得到一份肤浅的课堂报告。