C++相关内容模块
- 单例模式,实现创建类中的对象,保证该类只能实例化一个唯一的对象
单例模式,实现创建类中的对象,保证该类只能实例化一个唯一的对象
using namespace std;// 需求:单例模式,实现创建类中的对象,保证该类只能实例化一个唯一的对象class Printer
{// 1、构造函数:私有化
private:Printer() {m_Count = 0; // 初始化打印次数cout << "打印机对象创建" << endl;};// 1-1、拷贝构造函数也进行私有化Printer(const Printer& p) {}; public:// 2、 内部维护一个该类的指针-- 利用public返回一个类的指针static Printer* getInstance() {return singlePrinter;}void printTest(string text) {cout << text << endl;// 打印完毕,记录打印次数m_Count++;cout << "打印机使用的次数为:" << m_Count << endl;}private:// 3、创建静态函数,类内声明,类外实现static Printer * singlePrinter; // 静态函数,类内声明,类外实现int m_Count; // 记录打印次数
};// 4、 类外实现Printer的静态函数
Printer* Printer::singlePrinter = new Printer; // 静态函数,类内生命,类外实现void test() {Printer * printer_0=Printer::getInstance(); // 利用Printer::getInstance() 调用Printer的静态方法Printer * printer_1 = Printer::getInstance();if (printer_0 == printer_1) {cout << "printer_0 与 printer_1 相同" << endl;}else{cout << "printer_0 与 printer_1 不相同" << endl;}printer_1->printTest("打印离职报告");
}int main(){test();cout << "main调用了"<<endl;return 0;
}