首页 > 其他 > 详细

单例模式

时间:2017-04-13 22:30:10      阅读:185      评论:0      收藏:0      [点我收藏+]

《大话设计模式》中这样引出单例模式。很形象生动。

有些类也需要计划生育

“大鸟,今天我在公司写一个MDI窗体程序,当中有一个是“工具栏”的窗体,问题是,我希望工具箱要么不出现,出现也只出现一个,可实际上却是我每次点击菜单,实例化‘工具箱’,它就会出来一个,这样点击多次就会出来多个,你说怎么办??”

单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

 

先附上代码:

#include <iostream>
using namespace std;

class Singleton
{
private:
    Singleton() {}
    //把复制构造函数和=操作符也设置为私有,防止被复制
    Singleton(const Singleton&) {}
    Singleton& operator=(const Singleton&) {}

    static Singleton* obj;

public:
    static Singleton* GetObj()
    {
        if(obj == NULL)
            obj = new Singleton();
        else
            return obj;
    }
};

//在此处初始化
Singleton* Singleton:: obj = NULL;

int main()
{
    Singleton* singleton1 = Singleton::GetObj();
    Singleton* singleton2 = Singleton::GetObj();

    if(singleton1 == singleton2)
        printf("singleton1 == singleton2\n");
    return 0;
}

 

单例模式

原文:http://www.cnblogs.com/renzhuang/p/6706487.html

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