1.私有化构造函数
2.私有化拷贝构造
3.私有化唯一的静态成员变量(内部指针)(类内声明)
4.内部唯一的指针类外初始化(带上作用域) 保证了只创建了一个对象(因为我用了static,静态成员变量是只有一个能用的,并且类外无法访问)
5.公有化提供一个静态getInstance接口,可以进行访问,并且把上面创建的唯一对象return回去
#define _CAT_SECURE_NO_WARNINGS #include#include using namespace std; class Printer { private: //私有化构造函数 Printer() { m_count = 0; }; //初始化写在构造里面 Printer(const Printer& p);//私有化拷贝构造函数 public: static Printer* getInstance() { return singlePrinter; } void printTest(string text) { cout << text << endl; m_count++; cout << "打印机使用的次数为:" << m_count << endl; } private: static Printer* singlePrinter; //私有化唯一的静态成员变量(内部指针) int m_count; }; //内部指针在外部初始化 Printer* Printer::singlePrinter = new Printer;//保证了只能创建一个对象了 void test01() { //拿到打印机 Printer* printer=Printer::getInstance(); printer->printTest("离职报告"); printer->printTest("入职报告"); printer->printTest("升职"); printer->printTest("退学"); } int main() { test01(); system("pause"); return EXIT_SUCCESS; }
当出现一个值像下面这样很大的时候,一般都是没有初始化的原因



