21xrx.com
2024-09-20 01:14:41 Friday
登录
文章检索 我的文章 写文章
C++ 单例模式代码实现
2023-07-01 15:03:50 深夜i     --     --
C++ 单例模式 代码实现

C++ 单例模式是一种设计模式,其主要作用是确保一个类只有一个实例,并且提供全局访问点以访问该实例。这种模式非常有用,在编写大型应用程序时可以确保数据一致性以及避免创建多个重复的实例。

要实现 C++ 单例模式,需要考虑以下几个方面:

1. 构造函数需要声明为私有。

2. 需要有一个静态成员变量来存储类的唯一实例。

3. 需要有一个公共的静态方法来获取类的唯一实例。

以下是一个简单的 C++ 单例模式代码示例:


class Singleton {

private:

  static Singleton* instance;

  Singleton() {} //私有构造函数

public:

  static Singleton* getInstance() {

    if (instance == nullptr) {

      instance = new Singleton();

    }

    return instance;

  }

  void showMessage()

    std::cout << "Hello

};

Singleton* Singleton::instance = nullptr;

int main() {

  Singleton* s1 = Singleton::getInstance();

  Singleton* s2 = Singleton::getInstance();

  s1->showMessage(); //输出: Hello, World!

  s2->showMessage(); //输出: Hello, World!

  return 0;

}

在上面的代码中,Singleton 类的构造函数被声明为私有,确保只有 Singleton 类可以实例化它。同时,它还包括一个静态成员变量 instance 来保存 Singleton 类的唯一实例。此外,Singleton 类还实现了一个静态的公共方法 getInstance(),用于获取 Singleton 类的唯一实例。

在 main 函数中,我们先获取 Singleton 类的唯一实例 s1,然后再获取一个实例 s2。由于 Singleton 类只能有一个实例,所以 s1 和 s2 实际上是同一个对象。通过调用 Singleton 类中的 showMessage() 方法,我们可以看到输出的结果都是 "Hello, World!"。

总的来说,C++ 单例模式是一种很有用的模式,通过实现它,可以确保大型应用程序中的数据一致性,避免创建重复实例,从而提高程序的性能和效率。

  
  

评论区

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