-
常用的软件设计模式,在它的核心结构中只包含一个被称为单例的特殊类;
-
通过单例模式可以保证系统中只有一个实例且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源
#include "stdafx.h"
#include "stdio.h"
#include <iostream>
using namespace std;
class SingleTone {
private:
SingleTone();//这边设置为私有是不想让外界调到
static SingleTone* instance;//静态的成员指针
public:
static SingleTone* getInstance();
};
SingleTone* SingleTone::instance = 0;//0代表空指针
SingleTone::SingleTone()
{
}
SingleTone* SingleTone::getInstance()
{
if (instance == 0)
instance = new SingleTone();
return instance;
}
int main()
{
SingleTone* instance = SingleTone::getInstance();
printf("instance=%p\n", instance);
instance = SingleTone::getInstance();
printf("instance=%p\n", instance);
instance = SingleTone::getInstance();
printf("instance=%p\n", instance);
return 0;
}
运行结果如下:
无论getInstance多少次,地址都是同一个。