C++单例实现

C++ singleton implementation

本文关键字:实现 单例 C++      更新时间:2023-10-16

我正在研究c++中Singleton模式的一个例子。

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; };为什么会有一个&在方法前面?

这一行是一个复制构造函数,当您将一个对象分配给另一个相同类型的对象时会调用它。由于在这种情况下它被声明为private,这意味着复制构造函数将不会在类外部调用。这就是单身汉的重点,不是吗?

"&"另一方面称为引用。复制构造函数将Singleton引用作为参数。请参阅此问题,了解如何使用引用运算符。

我建议读一本C++书,以便更深入地理解参考资料和课程。

它声明复制构造函数为私有的,这样就不能复制对象。请参阅:What';s在c++中使用私有副本构造函数

你需要买一本关于c++的书。

C和C++是两种不同的语言,它们恰好共享13个关键字。

"&"意思是"参考"。有点像指针,但限制性更强。

在参数中,const表示该方法承诺不更改此对象。&表示它是一个参考。