当前位置: 首页 > 文档资料 > C++大学教程 >

9.20 自助练习题

优质
小牛编辑
125浏览
2023-12-01

9.2 考虑类 Bicycle,根据你对自行车通用组件的了解,描述类 Bicycle 继承其他类(这些类还可以再继承其他类)的层次结构。讨论类Bicycle的各种对象的实例以及其他紧密相关的派生类对类 Bicycle 的继承性。

9.3 简要地定义下列术语:继承、多重继承、基类、派生类。

9.4 为什么编译器认为把基类指针转换为派生类指针是危险的?

9.5 区分单一继承与多重继承。

9.6(判断对错)派生类通常称为子类,因为它表示基类的子集,即派生类通常比基类更小。

9.7(判断对错)派生类对象也是其基类的对象。

9.8 有些程序员不喜欢用protected访问,因为它会破坏基类的封装。试讨论使用 Protected 访问与坚持在基类中使用private访问的利与弊。

9.9 许多带继承的程序可以改用复合,反过来也成立。试讨论这两种方法在本章 Point、Circle、Cylinder 类继承中的利弊。将图9.10(及其支持类)改写为使用复合而不用继承。然后重新评估这两种方法对 Point、Circle、Cylinder问题和一般面向对象程序的利弊。

9.10 将图 9.10 的 Point、Circle、Cylinder 程序改写为 Point、SqUare、Cube 程序。用两种方法,一种用继承,一种用复合。

9.11 本章曾经指出,“基类成员不适合派生类时,可以在派生类中重定义该成员的实现方法”。如果这样,“派生类对象是基类对象”的关系是否仍然成立?为什么。

9.12 研究图9.2的继承层次。对每个类,指出该层次中的共同属性与行为。并增加一些类以丰富这个层次(如UndergraduateStudent、GraduateStudent、Freshman、Sophomore、Junior、Senior等等)。

9.13 写出 Quadrilateral、Trapezoid、Parallelogram、Rectangle 和 Square 类的继承层次。用 Quadrilateral 作为这个层次的基类。让层次尽量深(尽量多层)。Quadrilateral的private数据为Quadrilateral四角的(x,y)坐标对。编写一个驱动程序,实例化和显示这些类的对象。

9.14 试写出所能想到的所有形状(包括二维的和三维的),并生成一个形状层次结构。生成的层次结构要以 Shape 作为基类,并由此派生出类TwoDimensionalShape和ThreeDimesionalShape。开发出层次结构后,定义其中的每一个类。第10章的练习要用这个层次结构处理作为基类Shape的对象的所有形状,这种技术叫做多态性。