effective c++ 条款15 在资源管理类中提供对原始资源的访问

总看看书上的例子感觉很没有成就感,深思述略了一下“资源管理类”,看到“资源”我想起了厕所,无论是在宿舍还是在公司里厕所的资源都是有限的,有考虑到自己接触的厕所都是比较低端的那种,也就是说只能通过关门和开门来表示是否有人,于是我的类产生了,如下:

测所类:

class WC
{
public:
    WC(){};
    void doorClose()
    {
        std::cout << "I am here!"<< std::endl;
    }
    void doorOpen()
    {
        std::cout<< "you can come in!" << std::endl;
    }
    ~WC(){};
private:

}

厕所管理员(资源管理类):

class WcAdmin{
public:
      WcAdmin(WC *p);
      ~WcAdmin();
private:
     WC *wc;
}

WcAdmin::WcAdmin(WC *p):wc(p)
{
    wc->doorClose();
}
~WcAdmin::WcAdmin()
{
    wc->doorOpen();
}

资源管理类的角色就是帮助厕所关门和开门,从而告诉我们厕所是否可用。

中午到了:

清扫厕所的阿姨要向厕所管理员要厕所来打扫,假如阿姨的函数如下:

void clean(WC *ptr);

如果向上面描述的厕所管理员是不合格的,他不知道自己负责厕所是哪一个了,没事吸烟了。勤劳的阿姨可定会向总管告状,然后他就被开除了。合格的厕所管理如下:

class WcAdmin{
public:
      WcAdmin(WC *p);
      ~WcAdmin();
      void get()
      {
        return wc;
      }
private:
     WC *wc;
}

WcAdmin::WcAdmin(WC *p):wc(p)
{
    wc->doorClose();
}
~WcAdmin::WcAdmin()
{
    wc->doorOpen();
}

原文链接: https://www.cnblogs.com/onlycxue/archive/2013/05/22/3093745.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/89446

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月10日 上午12:09
下一篇 2023年2月10日 上午12:09

相关推荐