编程学习资讯网

C++单例模式--编程学习网

发布时间:2018-08-16 09:03:22   来源:本站编辑   浏览次数:

应该有好多小伙伴会遇到对象频繁创建与销毁,或者是多个类共用一个类的时候怎么解决,今天就给大家好好讲讲单例模式

 

1、既然是单例模式那就只能存在一个对象

2、头文件

1
2
3
4
5
6
7
8
9
10
11
12
class Singleton{
public:
    static Singleton* getInstance();
 
private:
    Singleton();
    //把复制构造函数和=操作符也设为私有,防止被复制
    Singleton(const Singleton&);
    Singleton& operator=(const Singleton&);
 
    static Singleton* instance;
};

3、源文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "Singleton.h"
//因为是static成员变量,需要在这里初始化
Singleton* Singleton::instance = NULL;
 
Singleton::Singleton(){
 
}
 
 
Singleton::Singleton(const Singleton&){
 
}
 
 
Singleton& Singleton::operator=(const Singleton&){
 
}
 
 
//在此处初始化
Singleton* Singleton::getInstance(){
       if(instance == NULL)
 
       {
            instance = new Singleton();
       }
        return instance;
}


4、使用方法

1
2
3
4
5
6
7
8
9
10
int main(int argc, char *argv[])
{
   Singleton* singleton1 = Singleton::getInstance();
  //下面就可以用这个类里面的变量或者方法等
    Singleton* singleton2 = Singleton::getInstance();
 
 
   //singleton1和singleton2两个类指针对象共享同一份成员变量等
   return 0;
}

编程学习网 http://www.javalearns.cn

关注微信号:javalearns   随时随地学Java

或扫一扫

随时随地学Java