首页 > 技术文章 > C++单例模式

xupeidong 2018-08-09 15:40 原文

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

 

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

2、头文件

class Singleton{
public:
	static Singleton* getInstance();

private:
	Singleton();
	//把复制构造函数和=操作符也设为私有,防止被复制
	Singleton(const Singleton&);
	Singleton& operator=(const Singleton&);

	static Singleton* instance;
};

3、源文件

#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、使用方法

int main(int argc, char *argv[])
{
   Singleton* singleton1 = Singleton::getInstance();
  //下面就可以用这个类里面的变量或者方法等
    Singleton* singleton2 = Singleton::getInstance();


   //singleton1和singleton2两个类指针对象共享同一份成员变量等
   return 0; 
}

  

推荐阅读