21xrx.com
2024-12-22 23:47:52 Sunday
登录
文章检索 我的文章 写文章
C++单例模式实现
2023-06-29 11:54:14 深夜i     --     --
C++ 单例模式 实现

C++中的单例模式是一种设计模式,它确保一个类只有一个实例,并为该实例提供全局访问点。单例模式在需要控制系统资源或限制特定类的实例数量时很有用。本文将介绍如何在C++中实现单例模式。

实现步骤:

1. 创建一个类,并将其构造函数声明为私有。这将防止外部代码创建该类的多个实例。同时,提供一个公共的静态函数,用于获取该类的唯一实例。

2. 定义一个私有的静态成员变量,用于保存该类的唯一实例。

3. 在静态函数中,检查唯一实例是否已经存在。如果不存在,则创建一个新的实例并将其赋值给静态成员变量。如果已经存在,则直接返回现有实例。

4. 返回该类的唯一实例。

示例代码:


class MySingleton {

 public:

  //获取MySingleton唯一实例的静态函数

  static MySingleton &getInstance()

    static MySingleton instance; //唯一实例

    return instance;

  

  //删除默认的复制构造函数和赋值运算符

  MySingleton(const MySingleton &) = delete;

  MySingleton &operator=(const MySingleton &) = delete;

  //在类外部不能创建MySingleton实例的构造函数

 private:

  MySingleton() = default;

};

int main() {

 auto &s1 = MySingleton::getInstance();

 auto &s2 = MySingleton::getInstance();

 assert(&s1 == &s2); // s1 and s2是同一MySingleton实例

}

通过这种方式实现单例模式可以确保一个类只有一个实例,并为该实例提供全局访问点。当需要限制某个类的实例数量或需要控制系统中的特定资源时,单例模式非常有用。使用C++的单例模式不仅可以简化代码,而且可以更容易地维护代码。

  
  

评论区

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