《Effective C++》中关于继承与面向对象设计的总结要点有哪些?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2623个文字,预计阅读时间需要11分钟。
第六章 继承与面向对象设计
32.确定你的public继承模型,以展示is-a关系 + public继承意味着要展示is-a的关系,因此每个子类对象也是相应父类对象,适用于父类对象的每个操作也适用于子类对象。
public继承意味着要塑模出is-a的关系,所以每一个子类对象也是相应的父类对象,故适用于父类对象的每一个操作也都适用于子类对象。
33. 避免遮掩继承而来的名称派生类中的名称(包括数据名称和函数名称(不考虑不同传参))会遮掩基类中的名称,这种机制类似于作用域,先从当前类中搜索名称,如果找不到则到基类中搜索,以此类推。这个名称遮掩规则主要是防止新建的子类继承了较为疏远的基类同名函数,这在大部分情况下是不期望的。如果期望不要遮掩,使用using显式暴露即可。
34. 区分接口继承和实现继承class的成员函数可分为三类:一般函数、虚函数、纯虚函数。一般函数的接口和实现都会被强制继承;虚函数主要是继承接口且继承一个缺省实现;纯虚函数只有接口继承。带有virtual关键字的虚函数和纯虚函数可通过虚函数表访问到实际类对象的成员函数,即多态调用。
本文共计2623个文字,预计阅读时间需要11分钟。
第六章 继承与面向对象设计
32.确定你的public继承模型,以展示is-a关系 + public继承意味着要展示is-a的关系,因此每个子类对象也是相应父类对象,适用于父类对象的每个操作也适用于子类对象。
public继承意味着要塑模出is-a的关系,所以每一个子类对象也是相应的父类对象,故适用于父类对象的每一个操作也都适用于子类对象。
33. 避免遮掩继承而来的名称派生类中的名称(包括数据名称和函数名称(不考虑不同传参))会遮掩基类中的名称,这种机制类似于作用域,先从当前类中搜索名称,如果找不到则到基类中搜索,以此类推。这个名称遮掩规则主要是防止新建的子类继承了较为疏远的基类同名函数,这在大部分情况下是不期望的。如果期望不要遮掩,使用using显式暴露即可。
34. 区分接口继承和实现继承class的成员函数可分为三类:一般函数、虚函数、纯虚函数。一般函数的接口和实现都会被强制继承;虚函数主要是继承接口且继承一个缺省实现;纯虚函数只有接口继承。带有virtual关键字的虚函数和纯虚函数可通过虚函数表访问到实际类对象的成员函数,即多态调用。

