1.1     目的 为了让类中只有一个实例,实例不需要自己释放

1.2     将 默认构造  和 拷贝构造 私有化

1.3     内部维护一个 对象指针

1.4     私有化唯一指针

1.5     对外提供 getInstance方法来访问这个指针

1.6     保证类中只能实例化唯一一个对象

单例模式案例 – 打印机案例

 1 #define _CRT_SECURE_NO_WARNINGS
 2 #include<iostream>
 3 #include <string>
 4 using namespace std;
 5 
 6 class Printer
 7 {
 8 private:
 9     Printer(){ m_Count = 0; };
10     Printer(const Printer& p);
11 
12 public:
13     static Printer* getInstance()
14     {
15         return singlePrinter;
16     }
17 
18     void printText(string text)
19     {
20         cout << text << endl;
21         m_Count++;
22         cout << "打印机使用了次数为: " << m_Count << endl;
23     }
24 
25 
26 
27 
28 private:
29     static Printer* singlePrinter;
30     int m_Count;
31 };
32 Printer* Printer::singlePrinter = new Printer;
33 
34 void test01()
35 {
36     //拿到打印机
37     Printer * printer =  Printer::getInstance();
38 
39     printer->printText("离职报告");
40     printer->printText("入职报告");
41     printer->printText("加薪申请");
42     printer->printText("升级申请");
43     printer->printText("退休申请");
44 }
45 
46 int main(){
47 
48     test01();
49 
50     system("pause");
51     return EXIT_SUCCESS;
52 }

 

posted on 2019-06-06 15:16  Malphite  阅读(248)  评论(0编辑  收藏  举报