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;
}
}