- 内容提要
- 前言
- 第 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 复习题答案
8.7 复习题
1.哪种函数适合定义为内联函数?
2.假设 song( ) 函数的原型如下:
a.如何修改原型,使 times 的默认值为 1?
b.函数定义需要做哪些修改?
c.能否为 name 提供默认值“O. My Papa”?
3.编写 iquote( ) 的重载版本——显示其用双引号括起的参数。编写 3 个版本:一个用于 int 参数,一个用于 double 参数,另一个用于 string 参数。
4.下面是一个结构模板:
a.请编写一个函数,它将 box 结构的引用作为形参,并显示每个成员的值。
b.请编写一个函数,它将 box 结构的引用作为形参,并将 volume 成员设置为其他 3 边的乘积。
5.为让函数 fill() 和 show() 使用引用参数,需要对程序清单 7.15 做哪些修改?
6.指出下面每个目标是否可以使用默认参数或函数重载完成,或者这两种方法都无法完成,并提供合适的原型。
a.mass(density, volume) 返回密度为 density、体积为 volume 的物体的质量,而 mass(denstity) 返回密度为 density、体积为 1.0 立方米的物体的质量。这些值的类型都为 double。
b.repeat(10, “I'm OK”) 将指定的字符串显示 10 次,而 repeat(“But you're kind of stupid”) 将指定的字符串显示 5 次。
c.average(3, 6) 返回两个 int 参数的平均值(int 类型),而 average(3.0, 6.0) 返回两个 double 值的平均值(double 类型)。
d.mangle(“I'm glad to meet you”) 根据是将值赋给 char 变量还是 char*变量,分别返回字符 I 和指向字符串“I'm mad to gleet you”的指针。
7.编写返回两个参数中较大值的函数模板。
8.给定复习题 6 的模板和复习题 4 的 box 结构,提供一个模板具体化,它接受两个 box 参数,并返回体积较大的一个。
9.在下述代码(假定这些代码是一个完整程序的一部分)中,v1、v2、v3、v4 和 v5 分别是哪种类型?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论