C++单例模式

您所在的位置:网站首页 子木出处 C++单例模式

C++单例模式

2023-05-19 22:35| 来源: 网络整理| 查看: 265

单例模式 什么是单例模式

单例是设计模式里面的一种,全局有且只有一个类的static实例,在程序任何地方都能够调用到。单例模式分为懒汉模式(线程不安全)和饿汉模式;

懒汉模式

因为很懒,所以在调用方法的时候去new对象,多线程中是不安全的,需要加锁;

普通指针的懒汉模式(线程安全的,需要手动释放空间)

需要自己手动delete去释放空间;

#include #include //使用加锁的方式保证线程安全 class SingleInstance { public: ~SingleInstance() { std::cout //上锁 std::lock_guard lk(m_mutex); //双重判断 if (m_SingleInstance == nullptr) { m_SingleInstance = new SingleInstance(); } } return m_SingleInstance; } private: explicit SingleInstance() { std::cout std::cout //上锁 std::lock_guard lk(m_mutex); //双重判断 if (m_SingleInstance == nullptr) { m_SingleInstance = std::shared_ptr(new SingleInstance()); } } return m_SingleInstance; } private: explicit SingleInstance() { std::cout std::cout std::cout std::cout std::cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3