fsx92的个人主页

http://www.qtcn.org/bbs/u/105782  [收藏] [复制]

fsx92

  • 4

    关注

  • 6

    粉丝

  • 33

    访客

  • 等级:新手上路
  • 总积分:25
  • 保密,1989-11-23

最后登录:2023-11-23

更多资料

日志

Qt实现单例类的宏

2016-07-22 22:39
最近在做Qt项目时,用到了单例类,简单写了一个宏文件,如下:

#ifndef SINGLETON
#define SINGLETON

#include <QReadWriteLock>

//声明一个单例类,单例类必须有一个无参构造函数
#define DEC_SINGLE(className) \
    public: static className *Instance(void);\
    public: static void deleteInstance(void);\
    private: static className *_instance;

//实现一个单例类
#define IMP_SINGLE(className) \
    static QReadWriteLock className##Lock;\
    className *className::_instance = NULL; \
    className *className::Instance(void) \
    {   \
        if( NULL == className::_instance ) \
        { \
            className##Lock.lockForWrite();\
            if( NULL == className::_instance )\
            {\
                className::_instance = new className();\
            }\
            className##Lock.unlock();\
        }\
        return _instance;\
    }\
    void className::deleteInstance(void)\
    {\
        if( NULL != className::_instance )\
        {\
            delete className::_instance;\
            className::_instance = NULL;\
        }\
    }\

#endif // SINGLETON

分类:技术分析|回复:0|浏览:1010|全站可见|转载
 

Powered by phpwind v8.7 Certificate Copyright Time now is:03-29 12:56
©2005-2016 QTCN开发网 版权所有 Gzip disabled