用宏实现的单例模式

#define SINGLETON_CLASS_NO_DEF_CONSTRUCT_BODY(class_name)\
    private:\
    class_name();\
    class_name(const class_name&);\
    class_name & operator = (const class_name &);\
    public:\
    static class_name & Instance()\
        {\
        static class_name one;\
        return one;\
        }

#define SINGLETON_CLASS(class_name)\
    private:\
    class_name(){}\
    class_name(const class_name&);\
    class_name & operator = (const class_name &);\
    public:\
    static class_name & Instance()\
        {\
        static class_name one;\
        return one;\
        }

两个宏的区别仅在于是否实现 默认的无参构造函数。

你可能感兴趣的:(用宏实现的单例模式)