单例模式保证系统中一个类只有一个实例而且该实例易于外界访问
//实现单例步骤
//1.构造函数私有化
//2.增加静态私有的当前的指针变量
//3.提供静态对外接口,可以让用户获得单例对象
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
//懒汉式
class Singleton_lazy
{
private:
Singleton_lazy(){}
public:
static Singleton_lazy * get(){
if (A==NULL)
{
A = new Singleton_lazy;
}
return A;
}
private:
static Singleton_lazy *A;
};
Singleton_lazy * Singleton_lazy::A = NULL;
//饿汉式
class Singleton_hungry
{
private:
Singleton_hungry(){}
public:
static Singleton_hungry * get(){
return A;
}
private:
static Singleton_hungry *A;
};
Singleton_hungry * Singleton_hungry::A = new Singleton_hungry;
int main(void)
{
Singleton_lazy *p1 = Singleton_lazy::get();
Singleton_hungry*p2 = Singleton_hungry::get();
if (p1==p1)
{
cout << "不是单例" << endl;
}
else
{
cout << "是单例" << endl;
}
system("pause");
return 0;
}