介绍
几个重点:
- 构造函数为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:
~SingletonDel() {
if (m_instance != nullptr) {

本文介绍了C++中的单例模式,包括单线程和多线程下的实现,强调了线程安全和单例对象的生命周期管理。特别讨论了C++11标准如何简化线程安全的单例实现,并提供了相关的代码示例和注意事项,如拷贝构造函数和赋值运算符的处理。
最低0.47元/天 解锁文章
1008

被折叠的 条评论
为什么被折叠?



