使用 "Class &Class::Function()" 的单例模式?为什么是引用而不是指针?
Singleton pattern using "Class &Class::Function()"? Why a Reference and not a Pointer?
谁能告诉我下面的代码是什么意思?它看起来像单例模式,但使用 & 而不是指针。
class Class
{
public:
static Class &Function();
}
Class &Class::Function()
{
static Class class1;
return class1;
}
单例是程序员提出的一个想法。这意味着它背后没有特定的形式(尤其是处理 C++ 指针和引用),只有它的一组规则。
您在前面看到的代码意味着在调用函数时创建一个静态变量并将其保留到整个程序结束为止。通过引用指针返回它并不重要。它只包含一个指定的单个对象,该对象在作用域结束后不会被销毁(因为静态声明)并且将 return 只有那个对象。当然,您可以将它作为一个私有变量,并 return 它每当有人要调用该函数时。但是,它始终取决于用户本身。请注意这个问题:Difference between Singleton implemention using pointer and using static object
谁能告诉我下面的代码是什么意思?它看起来像单例模式,但使用 & 而不是指针。
class Class
{
public:
static Class &Function();
}
Class &Class::Function()
{
static Class class1;
return class1;
}
单例是程序员提出的一个想法。这意味着它背后没有特定的形式(尤其是处理 C++ 指针和引用),只有它的一组规则。 您在前面看到的代码意味着在调用函数时创建一个静态变量并将其保留到整个程序结束为止。通过引用指针返回它并不重要。它只包含一个指定的单个对象,该对象在作用域结束后不会被销毁(因为静态声明)并且将 return 只有那个对象。当然,您可以将它作为一个私有变量,并 return 它每当有人要调用该函数时。但是,它始终取决于用户本身。请注意这个问题:Difference between Singleton implemention using pointer and using static object