介绍
几个重点:
- 构造函数为private
- 提供一个获取单例对象指针的函数
- 一个静态指针成员存储单例对象
注意:
- 获取单例对象也可以获取对象引用,但要注意拷贝构造函数和赋值运算符
- 如果有多线程访问单例,需要注意线程同步
范例
源码GitHub:CppDesignPattern
单线程
#ifndef SIGLETON_H
#define SIGLETON_H
/**
* @brief 非线程安全单例,无多线程时使用
*/
class Singleton {
public:
/**
* @brief 单例模式,获取实例化对象
* @param 无
* @return 单例对象
*/
static Singleton *GetInstance();
/**
* @brief 单例模式,主动销毁实例化对象
* @param 无
* @return 无
*/
static void DestoryInstance();
private:
/**
* @brief 构造函数
*/
Singleton();
/**
* @brief 单例模式在程序结束时自动删除单例的方法
*/
class SingletonDel {
public: