注意C++的单例模式,其static成员需要在外部进行初始化。
[c language=”++”]
//#include<string>
//#include <iomanip>
#include<vector>
#include <algorithm>
//#include<stack>
#include<set>
#include<queue>
#include<map>
//#include<unordered_set>
#include<unordered_map>
//#include <sstream>
//#include "func.h"
//#include <list>
#include<stdio.h>
#include<iostream>
#include<string>
#include<memory.h>
#include<limits.h>
#include<bitset>
using namespace std;
class Singleton
{
public:
static Singleton* GetInstance()
{
if (instance == NULL)
instance = new Singleton();
return instance;
}
private:
Singleton(){};
static Singleton* instance;
};
//C++单例模式需要先创建instance
//Singleton* Singleton::instance = new Singleton();
Singleton* Singleton::instance = 0;
int main(void)
{
Singleton*s1 = Singleton::GetInstance();
Singleton*s2 = Singleton::GetInstance();
if (s1 == s2)
cout << "it’s same!" << endl;
return 0;
}
[/c]