21xrx.com
2024-12-22 22:37:11 Sunday
登录
文章检索 我的文章 写文章
C++实现单例模式:懒汉和饿汉两种方式
2023-07-01 22:59:59 深夜i     --     --
C++ 单例模式 懒汉 饿汉 实现

单例模式在软件开发过程中十分常用,其主要目的是保证在程序运行期间只有一个实例对象被创建。C++语言是一种面向对象编程语言,因此在C++语言中也可以实现单例模式。在C++语言中实现单例模式有两种方式,分别为饿汉和懒汉两种方式。

懒汉方式实现单例模式是指在程序第一次调用单例对象时才会创建该对象。以下是懒汉方式实现单例模式的代码:


class Singleton {

  private:

    static Singleton* instance;

    Singleton() {}

  public:

    static Singleton* getInstance() {

      if (instance == nullptr) {

        instance = new Singleton();

      }

      return instance;

    }

};

Singleton* Singleton::instance = nullptr;

在懒汉方式中,单例对象初始化为NULL,直到程序第一次调用该对象时才会创建该对象。如果返回已存在的对象,就会节省时间和资源。

饿汉方式实现单例模式是指在程序启动时对象就会被创建,而且所有调用都是返回该对象的引用。以下是饿汉方式实现单例模式的代码:


class Singleton {

  private:

    static Singleton* instance;

    Singleton() {}

  public:

    static Singleton* getInstance()

      return instance;

    

};

Singleton* Singleton::instance = new Singleton();

在饿汉方式中,单例对象在程序启动时就被创建。在需要使用单例对象时,直接调用getInstance()函数就可以获得该对象的引用。

无论是懒汉还是饿汉方式都可以实现单例模式,但它们具有不同的适用场景。懒汉方式适用于单例对象资源比较大的情况,而饿汉方式适用于单例对象资源比较小的情况。因此,程序员需要根据实际情况选择适合自己的方式来实现单例模式。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章