#define SINGLETON_DECLARATION(class_name) public: static class_name* getInstance(); public: static class_name* _instance;
#define SINALETON_DEFINITION(class_name) \
class_name* class_name::_instance = NULL; \
class_name* class_name::getInstance() \
{ \
if(class_name::_instance == NULL) \
{ \
class_name::_instance = new class_name(); \
} \
return class_name::_instance; \
}
using namespace std;
class A
{
SINGLETON_DECLARATION(A);
public:
char* getString() {return "A";}
};
SINALETON_DEFINITION(A);
int main()
{
cout << A::getInstance()->getString() << endl;
return 0;
}
本文介绍了一种使用C++实现单例模式的方法。通过宏定义SINGLETON_DECLARATION和SINALETON_DEFINITION来简化单例类的声明与定义过程。以类A为例展示了如何获取单例实例并返回字符串。

被折叠的 条评论
为什么被折叠?



