我正在研究c ++中Singleton Pattern的一个例子。
class Singleton
{
private:
static Singleton oneandonly;
Singleton(){};
~Singleton(){};
Singleton(const Singleton &);
Singleton & operator= (const Singleton &);
public:
static Singleton &getInstance(){ return oneandonly; };
}
我不明白以下几行。
Singleton(const Singleton &);
我总是使用const作为方法,但现在用于方法的形式参数,并且'&'确实有任何特殊含义或只是一个奇怪的名字。
然后是这条线:
static Singleton &getInstance(){ return oneandonly; };
为什么会有一个&在方法面前?
答案 0 :(得分:0)
它声明复制构造函数为private,因此无法复制该对象。请参阅:What's the use of the private copy constructor in c++
答案 1 :(得分:0)
你需要买一本关于c ++的书。
C和C ++是两种不同的语言,碰巧共享13个关键字。
'&'意味着参考'。有点像指针,但更具限制性。
答案 2 :(得分:0)
该行是copy constructor,当您将对象分配给同一类型的另一个对象时,会调用该行。由于在这种情况下它被声明为私有,这意味着不会在类外部调用复制构造函数。嗯,这就是单身人士的观点,不是吗?
'&'另一方面被称为参考。您的复制构造函数将Singleton引用作为参数。请参阅this question以了解如何使用参考运算符。
我建议您阅读一本C ++书籍,以便更深入地理解参考和类。
答案 3 :(得分:0)
在参数中,const表示该方法承诺不会更改此对象。 &
表示它是一个参考。