c++单例九品

小明 2025-05-07 09:33:37 15

c++单例九品

  • 单例实现第一品
  • 单例实现第二品
  • 单例实现第三品
  • 单例实现第四品
  • 单例实现第五品
  • 单例实现第六品
  • 单例实现第七品
  • 单例实现第八品
  • 单���实现第九品

    注意: 所有代码运行结果,都是使用ubuntu2004,gcc编译运行,会使用c++11标准和c++20标准。在后续的书写中,会提及结果使用的工具。windows vs studio运行结果与ubuntu gcc结果可能会有不同。也不用在过纠结,就当做是接触了一个新的概念。

    ()

    该专栏用于记录C++中的单例模式,通过九种单例的实现方式,从代码安全和性能角度来分析、学习和品鉴实现优劣。

    过程中会记录关于不同数据类型的初始化方式对代码安全和性能的影响,比如说内置类型的零初始化和平凡缺省初始化,以及抽象类型智能指针的 编译期常量初始化等,和一些类型的值初始化等对程序设计的影响。

    ()

    还会记录一些C11标准和C20标准在初始化时的异同,比如说constinit,constexpr和constexpr等关键字的使用。

    每个单例都会点评缺点和待优化的点,并在下一个单例实现方式中完成与上一个单例实现方式的对比,以达到更深的理解。

    • 什么是单例模式

      C++的单例模式是一种设计模式,旨在确保类只有一个实例,并提供一个全局访问点以访问该实例。这种模式通常用于需要严格控制类的实例化并确保在整个应用程序中只有一个实例存在的情况。

    • 单例模式的设计要求

      1. 无需显式提供参数的初始化
      2. 如果不希望用户按照某种方式使用,那么应想方法明确禁止(尽量不要列于文档中)
      3. 如果希望用户按某种方式使用,那么应设计得尽量高效,至少对于大部分常用接口如此

      单例实现第一品

      单例第一品传送带

      单例实现第二品

      单例实现第三品

      单例实现第四品

      单例实现第五品

      单例实现第六品

      单例实现第七品

      单例实现第八品

      单例实现第九品

The End
微信