单例类构造一次,复制构造一次,析构两次
//************************************************************************************
//最重要的一点是拷贝构造函数不能生成新对象
#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;
}
//*********************************************************************************