#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class ChairMan
{
public:
//返回主席指针
static ChairMan* getInstance()
{
return singleMan;
}
private:
//将构造函数私有化,不可以创建多个对象
ChairMan()
{
//cout << "ChairMan默认构造函数调用" << endl;
};
ChairMan(const ChairMan &c)
{
cout << "ChairMan拷贝构造函数调用" << endl;
};
//数据是共享的,只需要拿到一个主席的对象指针
//public:
static ChairMan* singleMan;
};
ChairMan* ChairMan::singleMan = new ChairMan;//唯一的主席类指针
void test01()
{
/*ChairMan c1;
ChairMan c2;
ChairMan* c3 = new ChairMan;*/
/*ChairMan* c1 = ChairMan::singleMan;
ChairMan* c2 = ChairMan::singleMan;*/ //当public 被注释掉 就无法直接访问singleMan了
/*if (c1 == c2)
{
cout << "c1与c2相等" << endl;
}
else
{
cout << "c1与c2不等" << endl;
}*/
//ChairMan::singleMan = NULL; //getInstance
ChairMan* c1 = ChairMan::getInstance();
ChairMan* c2 = ChairMan::getInstance();
if (c1 == c2)
{
cout << "c1与c2相等" << endl;
}
else
{
cout << "c1与c2不等" << endl;
}
//ChairMan* c3 = new ChairMan(*c1);//调用拷贝构造函数 要让拷贝构造函数私有化
//if (c1 == c3)
//{
// cout << "c1与c3相等" << endl;
//}
//else
//{
// cout << "c1与c3不等" << endl;
//}
}
int main()
{
test01();
//cout << "main函数调用" << endl;
system("pause");
return 0;
}