C++笔记4.35

设计一个简单的单例模式 源代码

  1. #include <iostream>  
  2. #include <string>  
  3.   
  4. using namespace std;  
  5.   
  6. class Printer  
  7. {  
  8. public:  
  9.     //2提供一个方法获得单例指针  
  10.     static Printer* getSinglePrint(void)  
  11.     {  
  12.         return singlePrint;  
  13.     }  
  14.     //4设置函数功能(自定义部分)  
  15.     void printText(char* str)  
  16.     {  
  17.         cout << "打印" << str <<endl;  
  18.         count ++;  
  19.     }  
  20.   
  21.     int count;  
  22.   
  23. private:  
  24.     //1定义一个静态的对象指针变量,保存唯一实例地址  
  25.     static Printer *singlePrint;  
  26. private:  
  27.     //3防止该类实例化其他对象,将整个构造函数全部私有  
  28.     Printer(){count = 0;}  
  29.     Printer(const Printer &ob){}  
  30. };  
  31.   
  32. Printer *Printer::singlePrint = new Printer;  
  33.   
  34. int main()  
  35. {  
  36.     Printer *p1 = Printer::getSinglePrint();  
  37.     p1->printText("入职报告");  
  38.     p1->printText("体检报告");  
  39.     p1->printText("离职证明");  
  40.   
  41.     Printer *p2 = Printer::getSinglePrint();  
  42.     p2->printText("入职报告");  
  43.     p2->printText("体检报告");  
  44.     p2->printText("离职证明");  
  45.   
  46.     cout << "打印任务数量:" << p2->count<<endl;  
  47.     return 0;  
  48. }  

发表评论

邮箱地址不会被公开。 必填项已用*标注