没有合适的资源?快使用搜索试试~ 我知道了~
面向对象程序设计复习辅导三.doc
0 下载量 27 浏览量
2023-08-03
20:43:41
上传
评论
收藏 309KB DOC 举报
温馨提示
试读
62页
面向对象程序设计复习辅导三.doc
资源推荐
资源详情
资源评论
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
面向对象程序设计复习辅导( 三)
---函 数
徐孝凯
一个 C++语言程序由若干个程序文件和头文件所组成, 每个头
文件中一般带有用户类型的定义、 符号常量的定义、 函数的声明
等内容, 每个程序文件由若干个函数定义所组成, 其中必有一个而
且只有一个程序文件中包含有主函数 main, 称此程序文件为主程
序文件。函数是 C++程序中的基本功能模块和执行单元, 这一章专
门讨论函数的定义和调用, 变量的作用域和生存期等内容。
一、 函数的定义
( 一) 定义格式
<类型名> <函数名> ([<参数表>]) <函数体>
<类型名>为系统或用户已定义的一种数据类型, 它是函数执行
过程中经过 return 语句要求返回的值的类型, 又称为该函数的类
型。当一个函数不需要经过 return 语句返回一个值时, 称为无返
回值函数或无类型函数, 此时需要使用保留字 void 作为类型名。
当类型名为 int 时, 能够省略不写, 但为了清楚起见, 还是写明为
好。
<函数名>是用户为函数所起的名字, 它是一个标识符, 应符合
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
C++标识符的一般命名规则, 用户经过使用这个函数名和实参表能
够调用该函数。
<参数表>又称形式参数表, 它包含有任意多个( 含 0 个, 即没
有) 参数说明项, 当多于一个时其前后两个参数说明项之间必须用
逗号分开。每个参数说明项由一种已定义的数据类型和一个变量标
识符组成, 该变量标识符成为该函数的形式参数, 简称形参, 形参
前面给出的数据类型称为该形参的类型。一个函数定义中的<参数
表>能够被省略, 表明该函数为无参函数, 若<参数表>用 void 取代,
则也表明是无参函数, 若<参数表>不为空, 同时又不是保留字
void, 则称为带参函数。
<函数体>是一条复合语句, 它以左花括号开始, 到右花括号结
束, 中间为一条或若干条 C++语句。
在一个函数的参数表中, 每个参数能够为任一种数据类型, 包
括普通类型、 指针类型、 数组类型、 引用类型等, 一个函数的
返回值能够是除数组类型之外的任何类型, 包括普通类型、 指针
类型和引用类型等。另外, 当不需要返回值时, 应把函数定义为
void 类型。
( 二) 定义格式举例
(1) void f1() {...}
(2) void f2(int x) {...}
(3) int f3(int x,int* p) {...}
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
(4) char* f4(char a[]){...}
(5) int f5(int& x,double d) {...}
(6) int& f6(int b[10], int n) {...}
(7) void f7(float c[][N], int m, float& max) {...}
(8) bool f8(ElemType*& bt, ElemType& item) {...}
在第一条函数定义中, 函数名为 f1, 函数类型为 void, 参数
表为空, 此函数是一个无参无类型函数。若在 f1 后面的圆括号内
写入保留字 void, 也表示为无参函数。
在第二条函数定义中, 仅带有一个类型为 int 的形参变量 x,
该函数没有返回值。
在第三条函数定义中, 函数名为 f3, 函数类型为 int, 函数参
数为 x 和 p, 其中 x 为 int 型普通参数, p 为 int*型指针参数。
在第四条函数定义中, 函数名为 f4, 函数类型为 char*, 即字
符指针类型, 参数表中包含一个一维字符数组参数。注意: 在定义
任何类型的一维数组参数时, 不需要给出维的尺寸, 当然给出也是
允许的, 但没有任何意义。
在第五条函数定义中, 函数名为 f5, 返回类型为 int, 该函数
带有两个形参, 一个为 整型引用变量 x, 另一个为双精度变量 d。
在第六条函数定义中, 函数名为 f6, 函数类型为 int&, 即整
型引用, 该函数带有两个形参, 一个是整型数组 b, 另一个是整型
变量 n。在这里定义形参数组 b 所给出的维的尺寸 10 能够被省略。
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
在第七条函数定义中, 函数名为 f7, 无函数类型, 参数表中
包含三个参数, 一个为二维单精度型数组 c, 第二个为整型变量 m,
第三个为单精度引用变量 max。注意: 当定义一个二维数组参数时,
第二维的尺寸必须给出, 而且必须是一个常量表示式, 第一维尺寸
可给出也可不给出, 其作用相同。
在第八条函数定义中, 函数名为 f8, 返回类型为 bool, 即逻
辑类型, 该函数带有两个参数, 一个为形参 bt, 它为 ElemType 的
指针引用类型, 另一个为形参 item, 它是 ElemType 的引用类型,
其中 ElemType 为一种用户定义的类型或是经过 typedef 语句定义
的一个类型的别名。
( 三) 有关函数定义的几点说明
1. 函数原型语句
在一个函数定义中, 函数体之前的所有部分称为函数头, 它给
出了该函数的返回类型、 每个参数的次序和类型等函数原型信息,
因此当没有专门给出函数原型说明语句时, 系统就从函数头中获
取函数原型信息。
一个函数必须先定义或声明而后才能被调用, 否则编译程序无
法判断该调用的正确性。一个函数的声明是经过使用一条函数原型
语句实现的, 当然使用多条相同的原型语句声明同一个函数虽然
多余但也是允许的, 编译时不会出现错误。
在一个完整的程序中, 函数的定义和函数的调用能够在同一个
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
程序文件中, 也能够处在不同的程序文件中, 但必须确保函数原型
语句与函数调用表示式出现在同一个文件中, 而且函数原型语句
出现在前, 函数的调用出现在后。
一般把一个程序中用户定义的所有函数的原型语句组织在一起,
构成一个头文件, 让该程序中所含的每个程序文件的开始( 即所有
函数定义之前) 包含这个头文件( 经过#include 命令实现) , 这
样不论每个函数的定义在哪里出现, 都能够确保函数先声明后使
用( 即调用) 这一原则的实现。
一个函数的原型语句就是其函数头的一个拷贝, 当然要在最后
加上语句接上结束符分号。函数原型语句与函数头也有细微的差别,
在函数原型语句中, 其参数表中的每个参数允许只保留参数类型,
而省略参数名, 而且若使用参数名也允许与函数头中对应的参数
名不同。
2. 常量形参
在定义一个函数时, 若只允许函数体访问一个形参的值, 不允
许修改它的值, 则应把该形参说明为常量, 这只要在形参说明的前
面加上 const 保留字进行修饰即可。如:
void f9(const int& x, const char& y);
void f10(const char* p, char key);
在函数 f9 的函数体中只允许使用 x 和 y 的值, 不允许修改它
们的值。在函数 f10 的函数体中只允许使用 p 所指向的字符对象或
剩余61页未读,继续阅读
资源评论
xinkai1688
- 粉丝: 349
- 资源: 8万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 毕业项目:网上图书订阅管理系统的设计与开发(ASP.NET技术+程序源代码+毕业文档)
- zjk-1.ipynb
- Delphi 12 控件之EhLib.v10.2.42 for Delphi 5-12.src.rar
- cloudreve3.8.3的docker镜像
- RB108A-SOT23-5封装 单节锂电池保护IC 深圳市可芯电子有限公司.pdf
- Apache Maven的安装与配置.pdf
- 2024高质量PS练习教程,全程干货无废话
- TPLINK TL-NVR6116K-L 升级包
- RB301A-SOT23-5 单节锂电池保护IC 深圳市可芯电子有限公司.pdf
- scrt-x64-bsafe.9.5.2.3325.exe
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功