析构和线程安全单例模式

单例类构造一次,复制构造一次,析构两次
//************************************************************************************
//最重要的一点是拷贝构造函数不能生成新对象

#include<iostream>
using namespace::std;
class CSingleton
{
private:
	CSingleton()
	{
		//cout << instanc
		cout << "construct" << endl;
	}

public:
	int mem;
	CSingleton(const CSingleton&)
	{
          //复制构造函数

		cout << "copy construct!"<< endl;
	}

	~CSingleton()
	{
		std::cout << "Destory()"<<endl;	
	}

     //这里返回值类型是引用
     //static 保证只初始化一次,而且static 保证线程安全
	static CSingleton& get_Instance()
	{
		static CSingleton instance;
		return instance;
	}

};

int main()
{
	CSingleton& singleton_ref = CSingleton::get_Instance();
	//singleton_ref.mem = 1;
	return 0;
}

//*********************************************************************************
posted @ 2020-07-31 17:48  水水$88  阅读(134)  评论(0)    收藏  举报