单列模式(饿汉)
单例模式案例
主席案例
#include<iostream>using namespace std;//创建主席类//需求 单例模式 为了创建类中的对象,并且保证只有一个对像实例class ChairMan{private://1. 构造函数,进行私有化ChairMan(){//cout << "创建国家主席" << endl;}//拷贝构造私有化ChairMan(const ChairMan&c){}public://提供get方法 访问主席static ChairMan * getInstance(){return singleMan;}private:static ChairMan * singleMan;};ChairMan * ChairMan::singleMan = new ChairMan;void test01(){/*ChairMan c1;ChairMan *c2 = new ChairMan;ChairMan *c3 = new ChairMan;*//*ChairMan * cm= ChairMan::singleMan;ChairMan * cm2 = ChairMan::singleMan;*///ChairMan::singleMan = NULL;ChairMan *cm1= ChairMan::getInstance();ChairMan *cm2 = ChairMan::getInstance();if (cm1 == cm2){cout << "cm1和cm2相同" << endl;}else{cout << "cm1和cm2相同" << endl;}//ChairMan *cm3 = new ChairMan(*cm2);//if (cm3 == cm2)//{// cout << "cm3和cm2相同" << endl;//}//else{// cout << "cm3和cm2相同" << endl;//}}int main(){//cout << "main调用" << endl; 主席先于main调用test01();system("pause");return 0;}打印机案例
#include<iostream>#include<string>using namespace std;class Printer{private://默认构造函数私有化Printer(){ m_Count = 0; };//拷贝构造函数私有化Printer(const Printer& p){};public://对外提供接口访问唯一一个实例static Printer *getInstance(){return singlePrinter;}//打印功能void printText(string text){cout << text << endl;m_Count++;cout << "打印机使用了次数为:" << m_Count << endl;}private:static Printer *singlePrinter;int m_Count; //打印次数};Printer * Printer::singlePrinter = new Printer;void test01(){//拿到打印机Printer *ptr= Printer::getInstance();ptr->printText("离职报告");ptr->printText("入职报告");ptr->printText("加薪申请");ptr->printText("升级申请");ptr->printText("退休申请");}int main(){test01();system("pause");return 0;}总结
- 上一篇: 怎么检查看输卵管通不通
- 下一篇: 循环队列基本操作(解决队列假溢出)