《大规模C++程序设计》读书笔记25
来源:互联网 发布:c语言算法名称有哪些 编辑:程序博客网 时间:2024/05/10 22:57
Technorati 标签: C++,大规模C++程序设计,读书笔记
原则96:不必为了多态行为而损害语法问题,例如双目运算符的对称隐式转换。
原则97:虚函数实现行为上的变化;数据成员实现值的变化。
定义47:
隐藏(hide):一个成员函数若与在一个基类或文件作用域中声明的某个函数同名,则隐藏了那个函数。
重载(overload):一个函数用定义在同一作用域的同样的名称重载了另一个函数的名称。
覆盖(override):一个成员函数覆盖了在一个基类中声明为虚拟的同样的函数。
重新定义(redefine):一个函数的默认定义被另一个定义不可挽回的取代。
指导方针13:避免将一个基类函数隐藏在一个派生类中。
一个派生自一个纯协议类的抽象类有时被称为部分实现。在一个部分实现中的一些函数可能有一个有用的默认行为,但是它们应该不必自动成为默认行为,而应该定义为纯虚函数,迫使一个派生类作者显式的激活默认行为。
#includestruct Base {// *** Base Class ***virtual void f() = 0;virtual ~Base();};Base::~Base() {}struct Partial : Base {// *** Partial Implementation ***virtual void f() = 0;// declaration of pure virtual function~Partial();};void Partial::f() {// definition of pure virtual functioncout << "Partial::f" << endl;}Partial::~Partial() {}struct Derived : Partial {// *** Concrete Derived Class ***Derived() {}void f();~Derived();};void Derived::f() {cout << "Derived::f" << endl;Partial::f();// explicit call of pure virtual function}Derived::~Derived() {}int main()
{Base *b = new Derived;b->f(); return 0;
}// Output://Derived::f//Partial::f
原则98:静态成员函数通常用于实现一个单独工具类中的非基本功能。
- 《大规模C++程序设计》读书笔记25
- 《大规模C++程序设计》读书笔记1
- 《大规模C++程序设计》读书笔记2
- 《大规模C++程序设计》读书笔记3
- 《大规模C++程序设计》读书笔记4
- 《大规模C++程序设计》读书笔记5
- 《大规模C++程序设计》读书笔记6
- 《大规模C++程序设计》读书笔记7
- 《大规模C++程序设计》读书笔记8
- 《大规模C++程序设计》读书笔记9
- 《大规模C++程序设计》读书笔记10
- 《大规模C++程序设计》读书笔记11
- 《大规模C++程序设计》读书笔记12
- 《大规模C++程序设计》读书笔记13
- 《大规模C++程序设计》读书笔记14
- 《大规模C++程序设计》读书笔记15
- 《大规模C++程序设计》读书笔记16
- 《大规模C++程序设计》读书笔记17
- 前后一篇文章的原理
- 生成像这样得编号 XX2007032100001
- UML2.0工具比較
- asp.net 对Execl 的添加,更新操作
- 心目中的编程高手 zz
- 《大规模C++程序设计》读书笔记25
- Behind the Contry Names
- 客户端限制表单重复提交
- 关于Setup Factory的两个问题
- 怎样挤出时间深入学习一门技术?
- PHP静态分析与跨站脚本检测(四)
- 中国IT工作者35岁后的发展出路调查报告
- Extjs2.0之横向Radio经典布局
- 怎样才有充沛的精力投入工作