首页 > 编程语言 > 详细

C++第03课 特殊成员 (三)

时间:2021-09-06 03:17:43      阅读:31      评论:0      收藏:0      [点我收藏+]

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;
}

 

C++第03课 特殊成员 (三)

原文:https://www.cnblogs.com/creature-lurk/p/15228058.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!