标签:
单例模式?
只能实现一个实例的类成为单例。
==============
muduo库中单例模式实现
#include<boost/noncopyable.hpp> //#include "../sort.h" //#include "getLeastNumber.h" #include<set> using namespace std; template<typename T> class Singleton:boost::noncopyable{ public: static T& instance(){ pthread_once(&ponce_,&Singleton::init); return *value_; } private: Singleton(); ~Singleton(); static void init(){ value_ = new T(); } private: static pthread_once_t ponce_; static T* value_; }; template<typename T> pthread_once_t Singleton<T>::ponce_ = PTHREAD_ONCE_INIT; template<typename T> T* Singleton<T>::value_ = nullptr; class Foo{ public: Foo(){}; ~Foo(){}; void show(){std::cout<<"begin"<<"\nend"<<std::endl;} }; int main() { //A bfs; //bfs.test(); Foo& foo = Singleton<Foo>::instance(); foo.show(); return 0; }
标签:
原文地址:http://www.cnblogs.com/li-daphne/p/5612170.html