- 内容提要
- 前言
- 第 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 复习题答案
9.6 编程练习
1.下面是一个头文件:
注意到 setgolf( ) 被重载,可以这样使用其第一个版本:
上述函数调用提供了存储在 ann 结构中的信息。可以这样使用其第二个版本:
上述函数将提示用户输入姓名和等级,并将它们存储在 andy 结构中。这个函数可以(但是不一定必须)在内部使用第一个版本。
根据这个头文件,创建一个多文件程序。其中的一个文件名为 golf.cpp,它提供了与头文件中的原型匹配的函数定义;另一个文件应包含 main( ),并演示原型化函数的所有特性。例如,包含一个让用户输入的循环,并使用输入的数据来填充一个由 golf 结构组成的数组,数组被填满或用户将高尔夫选手的姓名设置为空字符串时,循环将结束。main( ) 函数只使用头文件中原型化的函数来访问 golf 结构。
2.修改程序清单 9.9:用 string 对象代替字符数组。这样,该程序将不再需要检查输入的字符串是否过长,同时可以将输入字符串同字符串“”进行比较,以判断是否为空行。
3.下面是一个结构声明:
编写一个程序,使用定位 new 运算符将一个包含两个这种结构的数组放在一个缓冲区中。然后,给结构的成员赋值(对于 char 数组,使用函数 strcpy( )),并使用一个循环来显示内容。一种方法是像程序清单 9.10 那样将一个静态数组用作缓冲区;另一种方法是使用常规 new 运算符来分配缓冲区。
4.请基于下面这个名称空间编写一个由 3 个文件组成的程序:
第一个文件是一个头文件,其中包含名称空间;第二个文件是一个源代码文件,它对这个名称空间进行扩展,以提供这三个函数的定义;第三个文件声明两个 Sales 对象,并使用 setSales( ) 的交互式版本为一个结构提供值,然后使用 setSales( ) 的非交互式版本为另一个结构提供值。另外它还使用 showSales( ) 来显示这两个结构的内容。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论