c++单例

#include <iostream>
using namespace std;
template < class T >
class Singleton
{
public:
static T* Instance() {
static T _instance ;

 return &_instance ; }
protected:
Singleton() {}
private:
Singleton(const Singleton &) ;
Singleton& operator=(const Singleton&) ;
} ;

class ConcreteSingleton : public Singleton< ConcreteSingleton > {

public:
	int v;

} ;


int main(){

	ConcreteSingleton * p1=ConcreteSingleton::Instance();
		ConcreteSingleton * p2=ConcreteSingleton::Instance();
		p1->v=400;
		p2->v=566;
		cout<<p1->v;
	return 1;
}

}

posted on 2010-11-19 21:13  yangyh  阅读(191)  评论(0)    收藏  举报