返回介绍

13.11 编程练习

发布于 2024-10-08 23:14:11 字数 1695 浏览 0 评论 0 收藏 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文