21xrx.com
2024-12-27 19:36:58 Friday
登录
文章检索 我的文章 写文章
C++ 单例模式的实现
2023-07-13 14:09:53 深夜i     --     --
C++ Singleton pattern implementation

在 C++ 中,单例模式可以用来确保只有一个特定实例的情况下运行。这种模式可以用于各种不同的场景,例如打印机队列、窗口管理器和数据库连接。下面是一种在 C++ 中实现单例模式的方法。


class Singleton {

public:

  static Singleton& getInstance()

    static Singleton instance;

    return instance;

  

  

  void doSomething()

    // code here

  

private:

  Singleton() {} // 禁止构造函数被调用

  Singleton(const Singleton&) = delete; // 禁止拷贝构造函数

  Singleton& operator=(const Singleton&) = delete; //禁止赋值运算符

  ~Singleton() {} // 禁止析构函数被调用

};

在上面的代码中,`Singleton` 类的实例是在 `getInstance()` 方法中创建的,这意味着只有一个实例会在整个应用程序的生命周期中存在。关键在于 `static` 关键字,它可以确保只有一个实例被创建。

为了防止其他代码创建 `Singleton` 类的实例,它的构造函数被设为私有,这样只能通过 `getInstance()` 方法实例化,即为单例模式设计。同时,拷贝构造函数和赋值运算符也都被禁用了,以确保在整个应用程序的生命周期中,只有一个 `Singleton` 类的实例。

总的来说,C++ 单例模式的实现需要做出某些约束来确保单例实例化,以及禁止不必要的操作。在整个应用程序的生命周期中,只有一个实例存在,这有助于减少资源的占用和错误的发生。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复