目的:保证程序中该类的实例对象只有一个。
方法:使用静态对象。
要点:1.某个类只能有一个实例,2,它必须自行创建这个实例,3.它必须自行向整个系统提供这个实例。
实现方法:1.单例模式的类只提供私有的构造函数,2.类定义中含有一个该类的静态私有对象,3,该类提供一个静态公有的函数用于创建或获取该它本身的静态私有对象。
应用场景:资源管理器
c++代码实现:
//c10 SingleTon
#include <iostream>
using namespace std;
class Egg{
static Egg e;
int num;
Egg(int x):num(x){}
Egg(const Egg&); //拷贝构造函数
public:
static Egg* getInstance(){
return &e;
}
int val() {return num--;}
};
Egg Egg::e(67);
int main(){
// Egg x(47);
cout<<Egg::getInstance()->val()<<endl;
cout<<Egg::getInstance()->val()<<endl;
cout<<Egg::getInstance()->val()<<endl;
}