日志
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 |