`

C++单例模式

    博客分类:
  • C++
 
阅读更多

单例模式

#include <iostream>     
  
using namespace std;     
  
//单例类的C++实现     
  
class Singleton     
  
{     
  
private:     
  
       Singleton();//注意:构造方法私有     
  
            
  
       static Singleton* instance;//惟一实例     
  
       int var;//成员变量(用于测试)     
  
public:     
  
       static Singleton* GetInstance();//工厂方法(用来获得实例)     
  
       int getVar();//获得var的值     
  
       void setVar(int);//设置var的值     
  
       virtual ~Singleton();  
  
};     
  
//构造方法实现     
  
Singleton::Singleton()     
  
{     
  
       this->var = 20;     
  
       cout<<"Singleton Constructor"<<endl;     
  
}     
  
Singleton::~Singleton()     
  
{     
  
       cout<<"Singleton Destructor"<<endl;  
  
       //delete instance;     
  
}     
  
//初始化静态成员     
  
/*Singleton* Singleton::instance=NULL; 
 
Singleton* Singleton::GetInstance()    
 
{    
 
       if(NULL==instance) 
 
              instance=new Singleton(); 
 
       return instance;    
 
}*/  
  
Singleton* Singleton::instance=new Singleton;  
  
Singleton* Singleton::GetInstance()     
  
{     
  
       return instance;     
  
}       
  
//seter && getter含数     
  
int Singleton::getVar()     
  
{     
  
       return this->var;     
  
}     
  
void Singleton::setVar(int var)     
  
{     
  
       this->var = var;     
  
}     
  
//main     
  
void main()     
  
{     
  
       Singleton *ton1 = Singleton::GetInstance();     
  
       Singleton *ton2 = Singleton::GetInstance();  
  
      if(ton1==ton2)  
  
              cout<<"ton1==ton2"<<endl;  
  
       cout<<"ton1 var = "<<ton1->getVar()<<endl;  
  
       cout<<"ton2 var = "<<ton2->getVar()<<endl;     
  
       ton1->setVar(150);     
  
       cout<<"ton1 var = "<<ton1->getVar()<<endl;  
  
       cout<<"ton2 var = "<<ton2->getVar()<<endl;  
  
       delete Singleton::GetInstance();//必须显式地删除  
  
}     

 单例模式,里面有静态方法和静态字段的使用,其中静态字段需要进行初始化这个需要注意

分享到:
评论

相关推荐

    c++单例模式线程日志类

    自己写的c++实现的单例模式日志类。支持多线程、日志等级、可输出每条日志的输出时间(精确到毫秒级),日志级别,支持可变长参数、标准格式化输出。 代码中包含VS2010示例程序,使用方便。

    C++ 单例模式

    采用C++ 的单例模式设计,

    QT_C++单例模式懒汉+饿汉.rar

    QT_C++单例模式懒汉+饿汉,设计模板,使用QT打开pro文件编译即可,默认控制台输出。

    C++单例设计模式,单例模式

    C++单例设计模式,单例模式 C++单例设计模式,单例模式

    c++ 单例模式源码

    本人简单整理了自己所学,singleTon 比较简单,不足之处望指教

    设计模式C++学习之单例模式(Singleton)

    设计模式C++学习之单例模式(Singleton)

    C++单例模式懒汉式和饿汉式

    c++单例模式 懒汉式和饿汉式

    C++设计模式-单例模式

    李建忠老师的设计模式-单例模式讲解,示例以C++编程语言呈现。

    C++单例模式应用实例

    本文实例讲述了C++单例模式及其相关应用方法,分享给大家供大家参考。具体方法分析如下: 定义: 一个类有且仅有一个实例,并且提供一个访问它的全局访问点。 要点: 1、类只能有一个实例; 2、必须自行创建此实例;...

    C++单例模式示例代码

    C++进阶学习:单例模式的实现示例代码,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/48809541

    C++单例日志类(标准C/C++)

    在vs2013上实现的标准C/C++日志记录(C++11). 分享出来给大家学了解。有更好方案可以沟通交流。

    C++ 单例模式的详解及实例

    C++ 单例模式的详解及实例 1.什么叫单例模式? 单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很...

    使用C++11实现线程安全的单例模式

    C++11实现线程安全的单例代码和测试代码,包含singleton.h,main.cpp,希望帮助到大家。

    懒汉与恶汉的单例模式C++

    设计模式中的单例模式,涉及饿汉与懒汉模式,C++语言。

    C++ 单例模式的几种实现方式研究

    单例模式,可以说设计模式中最常应用的一种模式了,据说也是面试官最喜欢的题目。但是如果没有学过设计模式的人,可能不会想到要去应用单例模式,面对单例模式适用的情况

    C++ 多线程和多线程下的单例模式

    本资源描述了C++11 中多线程的创建,C++11中std命名空间中将boost库中的Thread加入,boost多线程从准标准变为标准,其中还介绍了C++ 多线程下的单例模式的使用,本文档为txt文档

    C++实现单例模式(懒汉式)源码

    最近在做游戏开发,阅读了一些源码后做了一些总结与记录,希望对自己和其他的朋友有所帮助

    C++单例设计模式

    C++单例设计模式: 单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如...

    单例模式 c++

    http://blog.csdn.net/zerolxl/article/details/8026739 博客代码

Global site tag (gtag.js) - Google Analytics