1.单例模式(不考虑多线程)
构造函数私有化。
提供静态公有接口访问对象。
1.1懒汉式(在多线程下存在安全问题)
1.2饿汉式
//懒汉式 namespace lanHan { class MM { public: static MM* getMM() { if (lpMM == nullptr) { lpMM = new MM; } //饿汉式不做判空处理,直接return return lpMM; } protected: string name; int age; private: MM() {} //构造函数私有化后仍然可以创建指针 MM(string name, int age) :name(name), age(age) { } static MM* lpMM; //用来指向创建指针 }; } lanHan::MM* lanHan::MM::lpMM = nullptr; int main() { lanHan::MM* mm = lanHan::MM::getMM(); lanHan::MM* mm1 = lanHan::MM::getMM(); cout << mm <<"\t"<<mm1<< endl; return 0; }