单例模式简析

蓝咒 提交于 2020-01-10 17:20:39

11.单例模式案例----主席
(1)内部维护一个私有化static的对象指针。(类外初始化,编译阶段就new出来了,比main函数的执行出现的早)
(2)默认构造和拷贝构造私有化
(3)对外提供公有化static getInstance()方法访问这个指针
注意:目的:为了让类中中有一个实例,实例不需要自己释放(即不需要自己提供析构函数)

案例一主席

#include <iostream>
#include<string>
using namespace std;

class ChairMan
{
public:
	static ChairMan *getInstance()
	{
		return singleMan;
	}
private:
	static ChairMan * singleMan;//私有静态唯一对象指针
	ChairMan()
	{
		cout<<"ChairMain 构造函数的调用"<<endl;
	}
	ChairMan(const ChairMan* &C){}
};

ChairMan * ChairMan::singleMan = new ChairMan;//static类外初始化

void test01()
{
	cout<<"main函数的调用"<<endl;//证明对象先于main函数出现
	ChairMan* c1=ChairMan::getInstance();
	ChairMan* c2=ChairMan::getInstance();
	if(c1 == c2)
	{
		cout<<"c1,c2相同"<<endl;
	}
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!