• c++单例模式


    2017-06-06

    以前面试的时候让写一个单例模式的类对象,怎么看都不明白,怎么学都不明白。只好死记硬背一些单例的例子。今天突然发现,他妈的在前面加一个static 就是最简单的单例了。对之前的智商感到担忧 。

    下面我来说一下最简单的单例:

    #include "标头1.h"
    Configer::Configer(){
    	opention A;
    }
    const Configer & Configer::getConfig(){
    	static Configer Conf;
    	return Conf;
    }
    Configer::~Configer(){
    
    }
    

      

    class Configer{
    public:
    	Configer();
    	static Configer & getConfig();
    	~Congiger();
    };
    

    以上是领悟到的单例模式,尽管不是安全的,网上查了一下:这种和叫饿汉式单例的差不多,就是缺少线程安全锁。

    想要产生单例对象时直接调用getConfig()方法就得到了。

    如果想要线程安全的单例。则在产生类对象的前后加锁即可:

    const Configer & Configer::getConfig(){
        pthread_mutex_lock(&mutex);
        static Configer Conf;
        pthread_mutex_unlock(&mutex);
        return Conf;
    }
    作者:first_semon
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题,欢迎交流
  • 相关阅读:
    uni-app调用原生的文件系统管理器(可选取附件上传)
    uni-app图片压缩转base64位 利用递归来实现多张图片压缩
    解释器模式
    外观模型
    装饰模式
    组合模式
    原型模式
    简单工厂模式
    抽象工厂模式
    工厂方法模式
  • 原文地址:https://www.cnblogs.com/first-semon/p/6951262.html
Copyright © 2020-2023  润新知