c++怎么实现单例模式

c++
916
2023/10/26 13:04:08
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在C++中,可以通过以下两种方式实现单例模式:

  1. 饿汉式单例模式:
class Singleton {
private:
    static Singleton* instance;
    Singleton() {} // 将构造函数设为私有,禁止外部创建对象
public:
    static Singleton* getInstance() {
        if (instance == nullptr) {
            instance = new Singleton();
        }
        return instance;
    }
};

Singleton* Singleton::instance = nullptr;

使用时可以通过Singleton::getInstance()获取单例对象。

  1. 懒汉式单例模式:
class Singleton {
private:
    static Singleton* instance;
    Singleton() {} // 将构造函数设为私有,禁止外部创建对象
public:
    static Singleton* getInstance() {
        if (instance == nullptr) {
            instance = new Singleton();
        }
        return instance;
    }
};

Singleton* Singleton::instance = nullptr;

使用时可以通过Singleton::getInstance()获取单例对象。

这两种方式都将构造函数设为私有,禁止外部创建对象,通过静态成员变量和静态成员函数来实现单例对象的创建和获取。在饿汉式中,单例对象在程序启动时就会被创建出来,在懒汉式中,单例对象在第一次被使用时才会被创建出来。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: vscode中c++环境搭建的方法是什么