一、什么是单例设计模式:
单例设计模式是一个类只能实例化一个对象
二、实现单例模式的思路:
- 把无参构造函数和拷贝构造函数私有化
- 定义一个类内的静态成员指针
- 在类外初始化时,new一个对象
- 把指针的权限设置为私有,然后提供一个静态成员函数让外面获取这个指针
三、代码实现
class Maker
{
//1.把构造函数初始化
private:
Maker() //默认构造函数
{
}
Maker(const Maker &m) //拷贝构造函数
{
}
public:
//静态成员函数,访问静态成员变量
//4.把指针的权限设置为私有,然后提供一个静态成员函数让外面获取这个指针
static Maker* getMaker()
{
return pMaker;
}
private:
//2.定义一个类内的静态成员指针
static Maker *pMaker;
}
//3.在类外初始化时,new一个对象
Maker *Maker::pMaker = new Maker;
void test()
{
//Maker m;
Makder *m = Maker::getMaker(); //地址0045A8E8
Makder *m = Maker::getMaker(); //地址0045A8E8
//获取的是同一个对象
//Maker m3 = *m; //false 调用拷贝构造
}