首页 > 编程语言 > 详细

C++ 宏定义创建(销毁)单例

时间:2019-03-14 14:56:34      阅读:298      评论:0      收藏:0      [点我收藏+]

Util.h:

#define CREATE_SINGLETON_POINTER(CLASS,INSTANCE,MUTEX) if (NULL == INSTANCE) \
                                                    {                                                         MUTEX.lock();                                                         if (NULL == INSTANCE)                                                         {                                                             INSTANCE = new CLASS();                                                         }                                                         MUTEX.unlock();                                                     }

#define DESTORY_SINGLETON_POINTER(INSTANCE) if (NULL != INSTANCE) \
                                            {                                                 delete INSTANCE;                                                 INSTANCE = NULL;                                             }

 

Foo.cpp:

#include "Foo.h"
#include <mutex>

std::mutex instanceMutex;
Foo* Foo::instance = NULL;
Foo* Foo::getInstance()
{
    CREATE_SINGLETON_POINTER(Foo, instance, instanceMutex);
    return instance;
}

Foo::~Foo()
{
    DESTORY_SINGLETON_POINTER(instance);
}

 

C++ 宏定义创建(销毁)单例

原文:https://www.cnblogs.com/adorkable/p/10529965.html

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