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

10.15 自助练习题

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

10.2 什么是虚函数?举一个适合使用虚函数的例子。

10.3 构造函数不能是虚函数。怎样使构造函数具有虚函数的效果?

10.4 多态如何让程序 一般化 而不是 特殊化。说明 一般化 编程的主要好处。

10.5 说明用 switch 逻辑编程的问题。请解释为什么多态可以代替 switch 逻辑。

10.6 区分静态关联与动态关联。请解释动态关联中虚函数和 vtable 的用法。

10.7 区分继承接口与继承实现的方法,继承接口的继承层次设计与继承实现的继承层次设计有什么不同?

10.8 区分虚函数与纯虚函数。

10.9 (判断对错)抽象基类中所有虚函数都要声明为纯虚函数。

10.10 对本章介绍的 Shape 层次提出一层或几层抽象基类(第一层是 Shape,第二层包括类 TwoDimensionalShape 和 ThreeDimensionalShape)。

10.11 多态如何促进可扩展性?

10.12 要求开发一个详细描述图形输出的飞行模拟程序。说明多态对这类问题为什么特别有用。

10.13 开发一个基本图形包。用 Shape 类继承层次,只限于二维形状,如正方形、长方形、三角形和圆。并与用户交互,让用户指定每个形状的位置、尺寸、形状和填充字符。用户可以指定多个同一形状的项目。生成每个形状时,将每个新Shape对象的 Shape* 指针放在数组中。每个类有自己的draw成员函数。编写一个多态屏幕管理程序,遍历数组(可 用迭代器)。向数组中的每个对象发一个draw消息,形成屏幕图形。每次用户指定新形状时,重新输出屏幕图形。

10. 14 修改图 10.1 的工资系统,增加private数据成员 birthData(Date对象) 和 departmentCode(int类型)到 Employee 中。假设工资系统每月处理一次。这样,程序计算每个员工的工资时(多态),遇到过生日的员工多发100美元奖金。

10.15 练习 9.14 开发了形状类 Shape 的层次结构,并在该结构中定义了若干类。修改该层次结构,使 Shape 成为一个包含接口(供层次结构中的类使用)的抽象基类。从类 Shape 派生出二维形状类 TwoDimensionalShape 和三维形状类 ThreeDimensionalShape,它们也都是抽象类,然后用虚函数 print 输出每个类的类型和维数。为了计算类层次结构中每个具体类的对象,这两个类中还要包括虚函数 are 和 volume。最后再编写一个驱动程序测试类Shape的层次结构。