单例模式,说通俗点就是所设计的类只能实例化一个对象,好处是易于外界访问,节约系统资源,怎样才能只实例化对象一次呢,最简单的,实例化需要构造函数和析构函数,把构造函数和析构函数私有化+静态变量就ok了,具体操作如下:
make并没有报错,说明这样设计是成功的
1 #include <iostream>
2 using namespace std;
3
4 //单例模式
5 class SingleTon
6 {
7 //1.防止类在外界实例化对象,构造函数私有化
8 private:
9 SingleTon(){};
10 SingleTon(const SingleTon& ob){};
11 ~SingleTon(){};
12
13 //2.定义静态指针变量保存唯一实例的地址
14 private:
15 static SingleTon* const p;
16
17 //3.获得唯一的实例地址
18 public:
19 static SingleTon* getSingTon(void){return p; }
20
21 //bin/4.用户定义的函数
22 void printString(char* str){cout << str << endl;}
23 };
24 SingleTon* const SingleTon::p = new SingleTon;
25
26 int main()
27 {
28 //获取单例地址
29 SingleTon* p1 = SingleTon::getSingTon();
30 p1->printString("hello world");
31 return 0;
32 }