首页 > 其他 > 详细

设计模式之单例模式

时间:2017-02-04 22:14:12      阅读:284      评论:0      收藏:0      [点我收藏+]

C++实现单例模式

 singleton.h

#ifndef _SINGLETON_H_
#define _SINGLETON_H_

#include <pthread.h>

class Singleton
{
public:
    static Singleton* getInstance()
    {
        if(nullptr == instance)
        {
            pthread_mutex_lock(&mutex);
            if(nullptr == instance) instance = new Singleton();
            pthread_mutex_unlock(&mutex);
        }
        return instance;
    }
private:
    Singleton(){}
    Singleton(const Singleton &);
    Singleton(const Singleton &&);
    static Singleton *instance;
    static pthread_mutex_t mutex;
};

#endif

 

 singleton.cpp

#include "singleton.h"

pthread_mutex_t Singleton::mutex = PTHREAD_MUTEX_INITIALIZER;
Singleton* Singleton::instance = nullptr;

编译:

g++ -std=c++11 -c singleton.cpp -lpthread


刚刚学习单例模式,不足之处希望大家多多指教

设计模式之单例模式

原文:http://www.cnblogs.com/txlstars/p/6366365.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!