effective c++ 条款23 perfer nonmember nonfreind function to member function
2014-07-10 03:01
337 查看
主要的理由还是封装。nonmember nonfreind function 不能访问类private 成员变量。
这个场景是有一个类提供了一些基本功能,比如
有时候我们需要执行上述三个函数。我们的做法是
这样的好处是保持了WebBrowser的封装性。
这其实就像提供以一个不同方面的api list, 不用每次都include所有的h文件。
从封装的角度而言,有点疑问,就是为什么不提供一个二次封装的类,比如一个新类bookmark 来调用webbrowser的函数???
这个场景是有一个类提供了一些基本功能,比如
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
- Effective C++:条款23:宁以non-member、non-friend替换member函数
- 读书笔记《Effective c++》 条款23 宁以non-member,non-friend替换member函数
- 读书笔记《Effective C++》条款23:宁以non-member、non-friend替换member函数
- 条款23:宁一 non-member no-friend 替换member函数(prefer non-member non-friend functions to members functions)
- effective C++ 条款 23:宁以non-member、non-friend替换member函数
- 《Effective C++》学习笔记条款23 宁以non-member、non-friend替换member函数
- call to a member function display() on a non-object
- Fatal error: Call to a member function getSource() on a non-object in G:\wamp\www\ChinaMagicCube\ap
- Effective C++——》条款23:宁以non-member、non-frined替换member函数
- magento后台 Fatal error: Call to a member function getId() on a non-object in错误
- Call to a member function display() on a non-object问题的解决
- Fatal error: Call to a member function getSource() on a non-object in G:\wamp\www\ChinaMagicCube\ap
- 条款23:宁以non-member,non-friend替换member函数[?????????]
- Magento Fatal Error: Call to member function getSku() on a non-object
- magento后台 Fatal error: Call to a member function getId() on a non-object in错误
- ECmall错误:Call to a member function get_users_count() on a non-object
- Fatal error: Call to a member function getSource() on a non-object in G:\wamp\www\ChinaMagicCube\ap
- Effective C++ -----条款23:宁以non-member、non-friend替换member函数
- Fatal error: Call to a member function getSource() on a non-object in G:\wamp\www\ChinaMagicCube\ap