欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++单例模式

程序员文章站 2022-06-05 21:07:53
应该有好多小伙伴会遇到对象频繁创建与销毁,或者是多个类共用一个类的时候怎么解决,今天就给大家好好讲讲单例模式 1、既然是单例模式那就只能存在一个对象 2、头文件 3、源文件 4、使用方法 ......

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

 

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