- 内容提要
- 前言
- 第 1 章 预备知识
- 第 2 章 开始学习 C++
- 第 3 章 处理数据
- 第 4 章 复合类型
- 第 5 章 循环和关系表达式
- 第 6 章 分支语句和逻辑运算符
- 第 7 章 函数——C++的编程模块
- 第 8 章 函数探幽
- 第 9 章 内存模型和名称空间
- 第 10 章 对象和类
- 第 11 章 使用类
- 第 12 章 类和动态内存分配
- 第 13 章 类继承
- 第 14 章 C++中的代码重用
- 第 15 章 友元、异常和其他
- 第 16 章 string 类和标准模板库
- 第 17 章 输入、输出和文件
- 第 18 章 探讨 C++新标准
- 附录 A 计数系统
- 附录 B C++保留字
- 附录 C ASCII 字符集
- 附录 D 运算符优先级
- 附录 E 其他运算符
- 附录 F 模板类 string
- 附录 G 标准模板库方法和函数
- 附录 H 精选读物和网上资源
- 附录 I 转换为 ISO 标准 C++
- 附录 J 复习题答案
13.11 编程练习
1.以下面的类声明为基础:
派生出一个 Classic 类,并添加一组 char 成员,用于存储指出 CD 中主要作品的字符串。修改上述声明,使基类的所有函数都是虚的。如果上述定义声明的某个方法并不需要,则请删除它。使用下面的程序测试您的产品:
2.完成练习 1,但让两个类使用动态内存分配而不是长度固定的数组来记录字符串。
3.修改 baseDMA-lacksDMA-hasDMA 类层次,让三个类都从一个 ABC 派生而来,然后使用与程序清单 13.10 相似的程序对结果进行测试。也就是说,它应使用 ABC 指针数组,并让用户决定要创建的对象类型。在类定义中添加 virtual View( ) 方法以处理数据显示。
4.Benevolent Order of Programmers 用来维护瓶装葡萄酒箱。为描述它,BOP Portmaster 设置了一个 Port 类,其声明如下:
show( ) 方法按下面的格式显示信息:
operator<<( ) 函数按下面的格式显示信息(末尾没有换行符):
PortMaster 完成了 Port 类的方法定义后派生了 VintagePort 类,然后被解职——因为不小心将一瓶 45 度 Cockburn 泼到了正在准备烤肉调料的人身上,VintagePort 类如下所示:
您被指定负责完成 VintagePort。
a.第一个任务是重新创建 Port 方法定义,因为前任被开除时销毁了方法定义。
b.第二个任务是解释为什么有的方法重新定义了,而有些没有重新定义。
c.第三个任务是解释为何没有将 operator=( ) 和 operator<<( ) 声明为虚的。
d.第四个任务是提供 VintagePort 中各个方法的定义。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论