C++单例实现
C++ singleton implementation
我正在研究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表示该方法承诺不更改此对象。&
表示它是一个参考。
相关文章:
- C++ 实现模板单例类时出现链接错误
- C++中的单例实现在调用 getInstance 函数时不会产生相同的类实例
- 使用 std::call_once 实现类似单例的功能
- 使用 CRTP 实现单例
- 这是MSVC 2013中具有共享PTR的单例的正确实现吗?
- C++ 单例实现 迈耶与call_once
- 函数内具有静态变量的单例类(迈耶实现)
- 使用新线程在类似于 Scott Meyer 的单例习惯用法的实现中实例化单例是否安全?
- 为什么此单例实现使用私人类(C )
- 为什么我的单例实现两次启动?(一个进程,多个线程)
- 这是单例模式的正确实现吗?
- 使用指针和使用静态对象实现单例实现之间的区别
- 使用运算符重载(新建/删除)实现单例的优缺点
- 如何在不使用的情况下在 <mutex>C++11 中实现多线程安全单例
- 为什么在实现单例类时会得到"Undefined reference error"?
- C++不同的单例实现
- 为什么这个单例实现无法编译?
- 为多线程环境实现单例的内存泄漏
- 如何在c++中实现单例
- 如何在静态库中实现单例