| 12345678910111213141516171819202122232425262728293031 |
- #ifndef SINGLETON_H
- #define SINGLETON_H
- #define DISABLE_COPY(Class) \
- Class(const Class &) = delete; \
- Class &operator=(const Class &) = delete;
- #define DCLR_SINGLETON(Class) \
- public: \
- static Class* instance(); \
- static void exitInstance(); \
- private: \
- DISABLE_COPY(Class) \
- static Class* s_pInstance;
- #define IMPL_SINGLETON(Class) \
- Class* Class::s_pInstance = NULL; \
- Class* Class::instance(){ \
- if (s_pInstance == NULL){ \
- s_pInstance = new Class; \
- } \
- return s_pInstance; \
- } \
- void Class::exitInstance(){ \
- if (s_pInstance){ \
- delete s_pInstance; \
- s_pInstance = NULL; \
- } \
- }
- #endif // SINGLETON_H
|