zoukankan      html  css  js  c++  java
  • 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; 
    }
    

      

  • 相关阅读:
    08-01集合运算
    07-03成员运算符
    07-02集合
    07-01结构与封装
    06-01字符串格式化.md
    06-03线性结构与切片
    06-02字符串与bytes
    05-02命名元组
    05-01元组
    04-01列表与常用操作
  • 原文地址:https://www.cnblogs.com/xupeidong/p/9448058.html
Copyright © 2011-2022 走看看