单件模式的析构
第一种单件模式的实现:
class CSingleton1{ private: CSingleton1(){ cout<<"CSingleton1 constructor"<<endl; } CSingleton1& operator=(CSingleton1& o){} CSingleton1& operator()(CSingleton1& o){} public: virtual ~CSingleton1(){ cout<<"CSingleton1 destructor"<<endl; } static CSingleton1& getInstance() { static CSingleton1 instance; return instance; } }; int main(){ CSingleton1 a1 = CSingleton1::getInstance(); CSingleton1 b1 = CSingleton1::getInstance();}class CSingleton2{ private: CSingleton2() { cout<<"CSingleton2 constructor"<<endl; } CSingleton2 & operator=(CSingleton2 & o){} CSingleton2 & operator()(CSingleton2 & o){} static CSingleton2 *instance; public: virtual ~CSingleton2() { if(NULL!=instance) { cout<<"CSingleton2 destructor"<<endl; delete instance; instance=NULL; } } static CSingleton2& getInstance() { if(NULL==instance) { instance=new CSingleton2(); } return *instance; } };int main(){ CSingleton2 a2 = CSingleton2::getInstance(); CSingleton2 b2 = CSingleton2::getInstance(); delete &a2;}