C++单例模式

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

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; 
}

  

原文地址:https://www.cnblogs.com/xupeidong/p/9448058.html