读书人

关于SINGLTON在C++里如何实现

发布时间: 2012-02-21 16:26:23 作者: rapoo

关于SINGLTON在C++里怎么实现
昨天面试被问了个问题
C++里怎么实现singlton.
本人对这种抽象的东西比较迷茫,高分求教,希望有人解释下.越详细越好,谢谢!

[解决办法]
你说的是Singleton吧。单身模式,意即只能产生一个实例的类。如放配置信息时

class Singleton{
public:
static Singleton* Instance();
protected:
Singleton();
private:
static Singleton* _instance;
};


Singleton* Singleton::_instance;
Singleton* Singleton::Instance(){
if( _instance == 0){
_instance = new Singleton;
};
return _instance;
}


[解决办法]
class test
{
test&instance()
{
static test x;
return x;
}
private:
test(){}
test(const test&);
}

[解决办法]

C/C++ code
//Singleton.h#ifndef _SINGLETON_H_#define _SINGLETON_H_#include <iostream>using namespace std;class Singleton{public:static Singleton* Instance();protected:Singleton();private:static Singleton* _instance;};#endif //~_SINGLETON_H_//Singleton.cpp#include "Singleton.h"#include <iostream>using namespace std;Singleton* Singleton::_instance = 0;Singleton::Singleton(){cout<<"Singleton...."<<endl;}Singleton* Singleton::Instance(){if (_instance == 0){_instance = new Singleton();}return _instance;}//main.cpp#include "Singleton.h"#include <iostream>using namespace std;int main(int argc,char* argv[]){Singleton* sgn = Singleton::Instance(); 

读书人网 >C++

热点推荐