21xrx.com
2024-12-22 18:08:36 Sunday
登录
文章检索 我的文章 写文章
C++单例模式懒汉实现
2023-07-06 20:25:36 深夜i     --     --
C++ 单例模式 懒汉 实现

C++单例模式是指在程序中只能创建一个全局唯一的对象,这种模式的主要好处在于可以减少资源的消耗和提高程序的性能。而懒汉实现就是在需要的时候才会创建这个对象,而不是一开始就创建。

首先,在C++中实现单例模式的懒汉实现,需要在定义类时将构造函数和析构函数设为私有,这样便不能直接创建该类的对象,只能通过一个公共的静态方法来获取到唯一的对象。

然后,在该类的静态方法中判断是否已经创建了对象,如果没有则创建并返回,否则直接返回该对象,这样便实现了懒汉实现。

下面是一段示例代码:


class Singleton {

public:

  static Singleton& getInstance()

    static Singleton instance;

    return instance;

  

private:

  Singleton() {}

  ~Singleton() {}

  Singleton(const Singleton&) = delete;

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

};

int main() {

  Singleton& s1 = Singleton::getInstance();

  Singleton& s2 = Singleton::getInstance();

  std::cout << (void*)&s1 << std::endl; // 输出单例对象地址

  std::cout << (void*)&s2 << std::endl; // 输出单例对象地址

  return 0;

}

通过以上代码,我们可以看到在调用Singleton::getInstance()方法时,创建了一个静态的局部变量instance,当第一次调用该方法时,instance会被创建,否则直接返回已经创建好的instance,这样就实现了懒汉实现的单例模式。

总结来说,C++单例模式的懒汉实现非常简单,只需要将构造函数和析构函数设为私有,并在该类的静态方法中创建唯一实例就可以了。这种模式最大的好处在于可以提高程序的性能和减少资源消耗,特别是在需要频繁创建对象的场景下,能够更好地优化程序的性能。

  
  

评论区

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