#include <iostream>
using namespace std;
// 单例模式
class ChairMan {
public:
static ChairMan* getChairMan() {
return singleMan;
}
private:
ChairMan() {
}
ChairMan(const ChairMan& chairMan) {
}
static ChairMan* singleMan;
};
ChairMan* ChairMan::singleMan = new ChairMan; // 初始化单例
void test01() {
ChairMan* chairMan1 = ChairMan::getChairMan();
ChairMan* chairMan2 = ChairMan::getChairMan();
if (chairMan1 == chairMan2) {
cout << "chairMan1 == chairMan2" << endl;
} else {
cout << "chairMan1 != chairMan2" << endl;
}
//ChairMan* chairMan3 = new ChairMan(*chairMan1); // 私有化 拷贝构造函数之后, 本句报错;
//if (chairMan2 == chairMan3) {
// cout << "chairMan2 == chairMan3" << endl;
//}
//else {
// cout << "chairMan2 != chairMan3" << endl;
//}
}
int main() {
test01();
return EXIT_SUCCESS;
}
#include <iostream>
using namespace std;
class Printer {
public:
static Printer* getPrinter() {
return singlePrinter;
}
void printText(string text) {
cout << text << endl;
this->count++;
cout << "打印机使用了 " << this->count << " 次" << endl;
}
private:
Printer() {
}
Printer(const Printer &printer) {
}
static Printer* singlePrinter;
int count = 0;
};
Printer* Printer::singlePrinter = new Printer;
void test01() {
Printer* printer1 = Printer::getPrinter();
printer1->printText("xuyushan");
printer1->printText("gaoxiaoyuan");
Printer* printer2 = Printer::getPrinter();
printer2->printText("liisiying");
printer2->printText("caotingting");
}
int main() {
test01();
return EXIT_SUCCESS;
}