修订历史
- 2019.12.29 创建笔记
- 2024.11.06 移出私密
使用静态成员函数 + 静态成员变量的缺点:静态函数不能成为虚函数、初始化和析构工作变得困难
Singleton 类中使用的静态成员是 Singleton* pInstance_,而不是 Singleton Instance_。pInstance_是在程序被装载时完成静态初始化 ,Instance_ 是动态初始化,由执行期的构造函数构造。但 C++ 未定义不同编译单元的初始化顺序,可能返回一个尚未构造的对象。
static Singleton& Instance();
让 Instance() 传回引用而非指针,防止使用者 deleteSingleton& Singleton::Instance() { static Singleton obj; return obj; }
《Effective C++》条款26