effective C++条款二十三解读
来源:互联网 发布:潍坊行知学校网站 编辑:程序博客网 时间:2024/06/06 05:30
宁以non-member non-friend替换member函数
首先我们指出这种做法的好处,然后再通过代码来进行展示:
1.增加代码的封装性
2.提高代码的扩展性
3.降低代码的编译依存性。
解释上面好处的代码:
class WebBrower{public: void clearCache(); void clearHistory(); void clearCookie(); //void clearEverything;这是member函数的做法,函数内调用clearCache clearHistory clearCookie}//不是成员函数的做法void clearBrower(WebBrower & wb){ wb.clearCache(); wb.clearHistory(); wb.clearCookie();}这里先说封装性的问题,新提供的clearBrower函数由于是非成员函数 所以说封装性肯定是由于clearevething的。
利用非成员函数,以及namespace我们可以降低代码的编译依存性。
如下面的代码:
namespace WebBrowerStuff{class WebBrowerStuff{}//放置所有用户都基本会使用的non-member函数}//头文件 WebBrowerBookmarks.h,定义与书签有关的便利函数namespace WebBrowerStuff{ ...}//头文件WebBrowerCookies.h定义与cookies相关的便利函数namespace WebBrowerStuff{}利用这种机制,用户可以根据自己的需要,引入相关的头文件,以此也降低了代码的依存性。
阅读全文
0 0
- effective C++条款二十三解读
- effective C++条款二十三解读
- effective C++ 条款十三解读
- Effective C++ 条款二解读
- effective C++ 条款二十解读
- effective C++ 条款二十一解读
- effective C++条款二十四解读
- effective C++条款二十五解读
- effective C++ 条款二十六解读
- effective C++条款二十七解读
- effective c++条款二十九解读
- effective C++ 条款三 解读
- effective c++ 条款4解读
- effective C++条款五解读
- effective C++ 条款六解读
- effective C++ 条款八解读
- effective C++ 条款九解读
- effective C++ 条款十解读
- 存储过程 触发器 视图
- 计蒜客-最大子阵列 / NYOJ题目44-子串和
- Struts2处理数据
- android文件系统挂载分析(1)---正常开机挂载
- Sublime text3 编译Python 只显示时间无输出结果处理
- effective C++条款二十三解读
- HTTP首部
- DOM事件大全
- 对于相同值排序有没有对rownum伪列应用一个限定条件排序结果不同
- NDK开发(一)--ndk-build
- 输入法输不了中文
- Mybatis框架
- Mysql事务隔离导致的问题
- java.util.concurrent.CountDownLatch类详解及例