C++版单例模式-现代化简洁写法

回顾一下单例模式,下面是现代最简洁的写法,且都保证了线程安全

饿汉式(线程安全)

程序启动时,实例就开始创建了,因此是线程安全的。

复制代码
class Singleton{
private:
    Singleton(){}
    Singleton(const Singleton&) = delete;
    Singleton& operator=(const Singleton&) = delete;
    static Singleton instance;//类内声明
public:
    static Singleton& getInstance(){
      return instance;
    }
}
Singleton Singleton::instance;

懒汉式(线程安全)

第一次调用instance函数时,实例才被创建出来,全局访问节点使用静态局部变量,保证了实例初始化一次且C++11规定静态局部变量是天然线程安全的

复制代码
class Singleton{
private:
  Singleton(){}
  Singleton(const Singleton&) = delete;
  Singleton& operator=(const Singleton&) = delete; 
public:
  Singleton& getInstance(){
      static Singleton instance;
      return instance;
  }
}
相关推荐
智者知已应修善业10 分钟前
【求等差数列个数/无序获取最大最小次大次小】2024-3-8
c语言·c++·经验分享·笔记·算法
..过云雨1 小时前
17-2.【Linux系统编程】线程同步详解 - 条件变量的理解及应用
linux·c++·人工智能·后端
量子炒饭大师1 小时前
Cyber骇客的逻辑节点美学 ——【初阶数据结构与算法】二叉树
c语言·数据结构·c++·链表·排序算法
fpcc2 小时前
C++编程实践—false_type和true_type的实践应用
c++
量子炒饭大师2 小时前
Cyber骇客神经塔尖协议 ——【初阶数据结构与算法】堆
c语言·数据结构·c++·二叉树·github·
王老师青少年编程3 小时前
2025年12月GESP(C++二级): 环保能量球
c++·算法·gesp·csp·信奥赛·二级·环保能量球
CoderCodingNo3 小时前
【GESP】C++五级真题(贪心思想考点) luogu-P11960 [GESP202503 五级] 平均分配
开发语言·c++·算法
不会写代码的里奇4 小时前
深入解析ASR技术:从原理到C++高性能实现
c++
CSDN_RTKLIB4 小时前
【类定义系列六】C++17新特性
开发语言·c++
hd51cc4 小时前
MFC文件操作
c++·mfc