#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;\
}
两个宏的区别仅在于是否实现 默认的无参构造函数。