C++中的单例模式

注意C++的单例模式,其static成员需要在外部进行初始化。


//#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;


}

发表评论

电子邮件地址不会被公开。 必填项已用*标注