单列模式(饿汉)
單例模式案例
主席案例
#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;}總結
- 上一篇: 怎么检查看输卵管通不通
- 下一篇: 循环队列基本操作(解决队列假溢出)