您的位置:首页 > 编程语言 > C语言/C++

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

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

测所类:

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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐