【c++】: 单例模式中的懒汉模式和饿汉模式

1.什么是单例模式?

简单来讲,就是在软件系统中,一个类只允许有一个实例,即只能生成一个对象。怎么实现:类的构造函数声明为private或者protected,以防止被外部生成对象,类的内部保存一个static private的该类类型的指针,类的生成对象操作由类的一个public方法代劳。单例模式又分为懒汉模式和饿汉模式两种。

2.懒汉模式

class Singleton
{
     
private:
	Singleton() {
      };
	~Singleton() {
      };
	Singleton(const Singleton&);
	Singleton& operator=(const Singleton&);
public:
	static Singleton& getInstance() 
        {
     
		static Singleton instance;
		return instance;
	}
};

3.饿汉模式

// version 1.3
class Singleton
{
     
private:
	static Singleton instance;
private:
	Singleton();
	~Singleton();
	Singleton(const Singleton&);
	Singleton& operator=(const Singleton&);
public:
	static Singleton& getInstance() {
     
		return instance;
	}
}

// initialize defaultly
Singleton Singleton::instance;

参考:
1.C++单例模式(懒汉和饿汉)与线程安全

2.C++ 单例模式

你可能感兴趣的:(c++,设计模式,设计模式,c++,单例模式)