码迷,mamicode.com
首页 > 编程语言 > 详细

effective c++ 条款23 perfer nonmember nonfreind function to member function

时间:2014-07-10 16:05:06      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   文件   cti   io   

主要的理由还是封装。nonmember nonfreind function 不能访问类private 成员变量。

这个场景是有一个类提供了一些基本功能,比如

class WebBrowser
{
  public:  
      void clearCache();
      void clearHistory();
      void removeCookies();
};

有时候我们需要执行上述三个函数。我们的做法是

void clearBrowser(WebBrowerser &wb)
{
   wb.clearCache();
   wb.clearHistory();
   wb.romoveCookies();
}

这样的好处是保持了WebBrowser的封装性。

//头文件webbrowser.h 针对webbrowser这个类本身。
//webbrowser的核心技能
namespace WebBrowerserStuff
{
class WebBrowser
{
  public:  
      void clearCache();
      void clearHistory();
      void removeCookies();
};
}

//bookmark related functions
//bookmark.h
namespace WebBrowerserStuff
{
   //bookmark related functions
}

//cookies related functions
//cookies.h
namespace WebBrowerserStuff
{
   //cookies related functions
}

这其实就像提供以一个不同方面的api list, 不用每次都include所有的h文件。

从封装的角度而言,有点疑问,就是为什么不提供一个二次封装的类,比如一个新类bookmark 来调用webbrowser的函数???

 

 

effective c++ 条款23 perfer nonmember nonfreind function to member function,布布扣,bubuko.com

effective c++ 条款23 perfer nonmember nonfreind function to member function

标签:style   blog   color   文件   cti   io   

原文地址:http://www.cnblogs.com/williamwood/p/3834943.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!