1. 类图
2. 示例代码
//单实例模式
//注意static变量的初始化位置
#include <iostream>
using namespace std;
class Singleton
{
private:
static Singleton* sington; //唯一的实例
public:
Singleton(){}
//返回单个实例
static Singleton* getSington()
{
if(sington==NULL)
{
sington=new Singleton();//若实例不存在则创建一个
cout<<"创建一个新的实例!"<<endl;
}
else
{
cout<<"实例已经存在!"<<endl;
}
return sington;
}
};
Singleton* Singleton::sington=NULL;
int main()
{
Singleton* sington1=Singleton::getSington();
Singleton* sington2=Singleton::getSington();
return 0;
}