单件模式 -- 保证唯一实例. 注意:下面的这个单件模式的实现显然是有问题的,线程安全性不能满足要求。如果想要得到线程安全的Singleton,可以考虑采用静态初始化。 #pragma once //Singleton.h #ifndef _SINGLETON_H_ #define _SINGLETON_H_ #include <iostream> using namespace std; class Singleton { public: static Singleton* Instance(); static Singleton* GetInstance(); protected: Singleton(); private: static Singleton* _instance; }; #endif //~_SINGLETON_H_ #include "StdAfx.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; } Singleton* Singleton::GetInstance() { return Instance(); } // Singleton_Pattern.cpp : Defines the entry point for the console application. // #include "stdafx.h" //main.cpp #include "Singleton.h" #include <iostream> using namespace std; int main(int argc,char* argv[]) { Singleton* sgn = Singleton::Instance(); // 或者 //Singleton* sgn = Singleton::GetInstance(); return 0; }