C++怎么实现Singleton模式

   2025-02-04 7360
核心提示:在C++中实现Singleton模式可以通过以下几种方式:饿汉式单例模式:在程序启动时就创建单例对象,并且提供一个全局的访问点。clas

在C++中实现Singleton模式可以通过以下几种方式:

饿汉式单例模式:在程序启动时就创建单例对象,并且提供一个全局的访问点。
class Singleton {private:    static Singleton* instance;    Singleton() {}public:    static Singleton* getInstance() {        return instance;    }};Singleton* Singleton::instance = new Singleton();
懒汉式单例模式:在第一次访问时才创建单例对象。
class Singleton {private:    static Singleton* instance;    Singleton() {}public:    static Singleton* getInstance() {        if (instance == nullptr) {            instance = new Singleton();        }        return instance;    }};Singleton* Singleton::instance = nullptr;
双重检查锁定单例模式:在第一次访问时才创建单例对象,并且使用双重检查锁定机制确保线程安全。
#include <mutex>class Singleton {private:    static Singleton* instance;    static std::mutex mtx;    Singleton() {}public:    static Singleton* getInstance() {        if (instance == nullptr) {            std::lock_guard<std::mutex> lock(mtx);            if (instance == nullptr) {                instance = new Singleton();            }        }        return instance;    }};Singleton* Singleton::instance = nullptr;std::mutex Singleton::mtx;

这些是常见的实现Singleton模式的方式,选择其中一种方式根据具体需求和线程安全性要求进行选择。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言