C++单例模式
提供唯一一个全局对象,每次访问时返回同一个对象实例。
实现步骤:
-
提供一个全局的public函数,用来访问实例。
-
构造函数private,避免外部创建实例。
-
合理的存储方式来保证唯一性(例如使用静态变量来保存指针或引用)。
-
懒汉式单例模式实现(线程不安全)
懒汉式,就是等到需要的时候在创建,如下代码所示即在第一次调用GetInstance() 函数时创建实例。
template <typename T> class Singleton { public: static T* GetInstance() { if (instance_ == nullptr) { instance_ = new T; } return instance_; } virtual ~Singleton(){ } protected: static volatile T* instance_; Singleton(){ } Singleton (const Singleton &); Singleton& operator = (const Singleton &); }; template <typename T