ITPub博客

首页 > 数据库 > 数据库开发技术 > 单件模式

单件模式

原创 数据库开发技术 作者:liiinuuux 时间:2016-08-18 21:01:54 0 删除 编辑
将构造函数设为私有,用静态函数初始化和返回全局唯一的实例。
class one
{
private:
    static one* _o;
    int _i;
    one():_i(0){}
    ~one(){}
public:
    static one* get() {if(!_o)_o = new one; return _o;}
    void add(){_i++;}
    void pnt(){cout << _i << endl;}
};
one* one::_o = NULL;


int main()
{
    one* o1 = one::get();
    for(int i=0; ++i<100; o1->add());
    o1->pnt();

    one* o2 = one::get();
    o2->pnt();
    return 0;
}

单件模式在子进程见也是唯一的。
int main()
{
    one* o1 = one::get();
    o1->add();
    o1->add();
    if(fork() == 0)
    {
        one* o2 = one::get();
        printf("o2: %x\n", o2);
        o2->pnt();
        exit(0);
    }
    printf("o1: %x\n", o1);
    o1->pnt();
    return 0;
}

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26239116/viewspace-2123700/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-11-12

  • 博文量
    94
  • 访问量
    353430