- 内容提要
- 前言
- 第 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 复习题答案
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
15.8 编程练习
1.对 Tv 和 Remote 类做如下修改:
a.让它们互为友元;
b.在 Remote 类中添加一个状态变量成员,该成员描述遥控器是处于常规模式还是互动模式;
c.在 Remote 中添加一个显示模式的方法;
d.在 Tv 类中添加一个对 Remote 中新成员进行切换的方法,该方法应仅当 TV 处于打开状态时才能运行。
编写一个小程序来测试这些新特性。
2.修改程序清单 15.11,使两种异常类型都是从头文件<stdexcept>提供的 logic_error 类派生出来的类。让每个 what( ) 方法都报告函数名和问题的性质。异常对象不用存储错误的参数值,而只需支持 what( ) 方法。
3.这个练习与编程练习 2 相同,但异常类是从一个这样的基类派生而来的:它是从 logic_error 派生而来的,并存储两个参数值。异常类应该有一个这样的方法:报告这些值以及函数名。程序使用一个 catch 块来捕获基类异常,其中任何一种从该基类异常派生而来的异常都将导致循环结束。
4.程序清单 15.16 在每个 try 后面都使用两个 catch 块,以确保 nbad_index 异常导致方法 label_val( ) 被调用。请修改该程序,在每个 try 块后面只使用一个 catch 块,并使用 RTTI 来确保合适时调用 label_val( )。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论