单例模式简析

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;
	}
}
发布了38 篇原创文章 · 获赞 13 · 访问量 4346

猜你喜欢

转载自blog.csdn.net/YanWenCheng_/article/details/103924962