Item 35 考虑虚函数的替代者
来源:互联网 发布:淘宝客服聊天表情包 编辑:程序博客网 时间:2024/05/17 09:07
● NVI: Non-Virtual Interface
NVI的优点:用一个不能被子类重定义的函数,做一些预处理、后处理。比如:互斥锁、日志、验证约束条件,等等。
● 函数指针
优先:对象实例和派生类对象,可使用各种实现,也可在运行时随意改变。
缺点:函数只能访问类内部的公有成员。这是一种隐患:可能以后需要访问私有成员,那么只有弱化类的封装。比如,把函数声明为友元;为私有成员提供访问函数。
● tr1::function比上面的函数指针更灵活、限制更少:
1> 返回值不一定是int,与其兼容即可
2> 可以是function对象
3> 可以是类的成员函数
● Strategy模式
优点:只要熟悉这个模式,就可以随时添加新算法。
- Item 35 考虑虚函数的替代者
- Item 35:考虑虚函数的其他替代设计 Effective C++笔记
- [翻译] Effective C++, 3rd Edition, Item 35: 考虑可选的 virtual functions(虚拟函数)的替代方法(上)
- [翻译] Effective C++, 3rd Edition, Item 35: 考虑可选的 virtual functions(虚拟函数)的替代方法(下)
- Effective C++ Item 35 考虑 virtual 函数以外的实现
- 条款35 考虑virtual函数以外的其他选择(virtual函数的替代方案)
- C++箴言:考虑可选的虚拟函数的替代方法
- C++箴言:考虑可选的虚拟函数的替代方法
- 考虑可选的 virtual functions(虚拟函数)的替代方法
- Effective C++ Item 25 考虑写出一个不抛异常的swap函数
- 条款35:考虑虚函数以外的其他选择
- 条款35、考虑虚函数以外的选择
- 考虑下面的函数
- Item 23 多考虑“非成员、非友元”函数
- 考虑用静态工厂方法替代构造器的情况
- 【Android编程架构】多Item类型的RecyclerView替代scrollView
- php 替代被弃用函数的
- item函数的用法
- Note
- Item 23 多考虑“非成员、非友元”函数
- python3 urllib.request
- MyEclipse 8.6下安装配置Extjs插件
- Have a fun
- Item 35 考虑虚函数的替代者
- C#虚方法和抽象方法
- Lucene和Nutch的文章荟萃
- fl2440文件系统的制作
- Item 37 子类不能修改成员函数的默认参数值
- Node的三种译法:网点、节点和结点
- c# new and override区别
- JTextPane 实现序列化保存图文混合
- 上班一周感慨...