《C++语言基础教程》课程电子教案(PPT教学课件)第4章 函数和作用域

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 第4章函数和作用域
第4章 函数和作用域

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 4.1函数的定义和说明 1.函数的定义格式 〈类型〉〈函数名〉(〈参数表〉) 〈函数体〉 C++程序中函数的类型不可省略
4. 1 函数的定义和说明 1. 函数的定义格式 〈类型〉〈函数名〉(〈参数表〉) { 〈函数体〉 } C++程序中函数的类型不可省略

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 例如, void noting {} 2.函数的说明 个函数先调用而后定义时,调用前必须说明。 说明函数的方法如下: 〈类型〉〈函数名〉(〈参数个数和类型〉) C++程序中函数说明一律采用原理说明
例如, void noting( ) { } 2. 函数的说明 一个函数先调用而后定义时,调用前必须说明。 说明函数的方法如下: 〈类型〉〈函数名〉(〈参数个数和类型〉) C++程序中函数说明一律采用原理说明

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 4.2函数的调用 1.函数的传值调用 该调用(同C语言)又分如下两种。 (1)传值调用 实参用表达式,形参用变量名,实参将复制副本形参。在被 调用函数中形参的改变将不影响调用函数的实参。 (2)传址调用 实参用地址值,形参用指针,调用时将地址值传送给指针, 即让指针指向实参变量或对象。被调用函数中可以通过改 变形参所指向的值来改变实参
4. 2 函数的调用 1. 函数的传值调用 该调用(同C语言)又分如下两种。 (1) 传值调用 实参用表达式,形参用变量名,实参将复制副本形参。在被 调用函数中形参的改变将不影响调用函数的实参。 (2) 传址调用 实参用地址值,形参用指针,调用时将地址值传送给指针, 即让指针指向实参变量或对象。被调用函数中可以通过改 变形参所指向的值来改变实参

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 2.引用调用 引用调用时,实参用变量名或对象名,形参用变量或对象的 引用。实际传送的是地址值。在被调用函数中改变形参值, 则调用函数中实参值也被改变。引用调用具有传址调用的 特点,而在操作中又比传址调用方便、直观。因此,在 C++程序中多用引用调用。 参见[例43]、[例44]和[例45]
2. 引用调用 引用调用时,实参用变量名或对象名,形参用变量或对象的 引用。实际传送的是地址值。在被调用函数中改变形参值, 则调用函数中实参值也被改变。引用调用具有传址调用的 特点,而在操作中又比传址调用方便、直观。因此,在 C++程序中多用引用调用。 参见[例4. 3]、[例4. 4]和[例4. 5]

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 43函数参数 1.函数参数的求值顺序 应注意不同编译系统中,函数参数求值的顺序可能不同。因 此,在不同编译系统下,当实参表达式中出现有副作用的 运算符时,可能产生二义性。 2.设置函数参数的默认值 C++语言中,允许在定义或说明函数时设置函数形参的默认 值
4.3 函数参数 1. 函数参数的求值顺序 应注意不同编译系统中,函数参数求值的顺序可能不同。因 此,在不同编译系统下,当实参表达式中出现有副作用的 运算符时,可能产生二义性。 2. 设置函数参数的默认值 C++语言中,允许在定义或说明函数时设置函数形参的默认 值

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 具体规则如下: ①设置参数默认值时,要求从右向左设置 ②调用设置了默认参数的函数时,对应实参如果没有,则用 默认值,如果存在,则用实参值 ③如果一个函数有说明出现时,设置参数默认值应放在函数 说明中 参见[例47]、[例4.8 3.数组名可作为函数参数 参见[例411]
具体规则如下: ① 设置参数默认值时,要求从右向左设置 ② 调用设置了默认参数的函数时,对应实参如果没有,则用 默认值,如果存在,则用实参值 ③ 如果一个函数有说明出现时,设置参数默认值应放在函数 说明中 参见[例4.7]、[例4.8]。 3. 数组名可作为函数参数 参见[例4.11]

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 44内联函数 1.引进内联函数的目的是为了提高函数的执行效果。 2.内联函数的定义方法 在函数头前加关键字 inline,则该函数为内联函数。 参见[例412]。 3.使用内联函数应注意的事项 通常情况下是将一些函数体不大使用频繁的函数定义为内联 函数。 使用内联函数时应注意: ①内联函数体内不允许用循环语句和开关语句 ②内联函数的定义必须出现在第一次调用之前 ③类体内定义的所有成员函数都是内联函数
4.4 内联函数 1. 引进内联函数的目的是为了提高函数的执行效果。 2. 内联函数的定义方法 在函数头前加关键字inline,则该函数为内联函数。 参见[例4.12]。 3. 使用内联函数应注意的事项 通常情况下是将一些函数体不大使用频繁的函数定义为内联 函数。 使用内联函数时应注意: ① 内联函数体内不允许用循环语句和开关语句 ② 内联函数的定义必须出现在第一次调用之前 ③ 类体内定义的所有成员函数都是内联函数

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 45函数重载 1.什么是函数重载 函数重载是指同一个函数名对应着多个不同的实现。 2.定义重载函数时应注意什么 多个重载的同名函数在定义时要注意它们的参数的不同,主 要是参数个数不同、参数类型不同和参数顺序不同。 在选择重载函数的不同实现时,主要根据参数不同进行选择。 参见[例413]、[例414]
4.5 函数重载 1. 什么是函数重载 函数重载是指同一个函数名对应着多个不同的实现。 2. 定义重载函数时应注意什么 多个重载的同名函数在定义时要注意它们的参数的不同,主 要是参数个数不同、参数类型不同和参数顺序不同。 在选择重载函数的不同实现时,主要根据参数不同进行选择。 参见[例4.13]、[例4.14]

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 46函数的嵌套调用和递归调用 1.函数的嵌套调用 参见[例415]。 2.函数的递归调用 (1)递归调用的特点 (2)递归调用的执行过程 参见[例416]
4.6 函数的嵌套调用和递归调用 1. 函数的嵌套调用 参见[例4.15]。 2. 函数的递归调用 (1) 递归调用的特点 (2) 递归调用的执行过程 参见[例4.16]
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C++语言基础教程》课程电子教案(PPT教学课件)第3章 语句.ppt
- 《C++语言基础教程》课程电子教案(PPT教学课件)第2章 数据类型和表达式.ppt
- 《C++语言基础教程》课程电子教案(PPT教学课件)第1章 C++语言概述.ppt
- 《C++语言基础教程》课程电子教案(PPT教学课件)第9章 C++的I/O流类库.ppt
- 《C++语言基础教程》课程电子教案(PPT教学课件)第8章 多态性和虚函数.ppt
- 《C++语言基础教程》课程电子教案(PPT教学课件)第7章 继承性和派生类.ppt
- 湖南工程学院:《中文版AutoCAD 2004基础教程》课程教学资源(PPT课件讲稿)第一章 绘图基础知识(刘军安).ppt
- 湖南工程学院:《中文版AutoCAD 2004基础教程》课程教学资源(PPT课件讲稿)第五章 线型、颜色及图层.ppt
- 湖南工程学院:《中文版AutoCAD 2004基础教程》课程教学资源(PPT课件讲稿)第八章 标注文字.ppt
- 湖南工程学院:《中文版AutoCAD 2004基础教程》课程教学资源(PPT课件讲稿)第十章 使用块、外部参照和设计中心.ppt
- 湖南工程学院:《中文版AutoCAD 2004基础教程》课程教学资源(PPT课件讲稿)第十一章 绘制基本三维对象.ppt
- 湖南工程学院:《中文版AutoCAD 2004基础教程》课程教学资源(PPT课件讲稿)第三章 编辑图形对象.ppt
- 湖南工程学院:《中文版AutoCAD 2004基础教程》课程教学资源(PPT课件讲稿)第七章 控制图形显示.ppt
- 湖南工程学院:《中文版AutoCAD 2004基础教程》课程教学资源(PPT课件讲稿)第六章 绘制面域与图案填充.ppt
- 湖南工程学院:《中文版AutoCAD 2004基础教程》课程教学资源(PPT课件讲稿)第九章 标注图形尺寸.ppt
- 湖南工程学院:《中文版AutoCAD 2004基础教程》课程教学资源(PPT课件讲稿)第二章 绘制二维图形对象.ppt
- 湖南工程学院:《中文版AutoCAD 2004基础教程》课程教学资源(PPT课件讲稿)第四章 使用绘图辅助工具.ppt
- 华为技术有限公司:胶片制作图标库.ppt
- 《Visual Basic 6.0》课程PPT教学课件(讲稿)第8章 多媒体.ppt
- 《Visual Basic 6.0》课程PPT教学课件(讲稿)第9章 数据库.ppt
- 《C++语言基础教程》课程电子教案(PPT教学课件)第5章 类和对象(一).ppt
- 《C++语言基础教程》课程电子教案(PPT教学课件)第6章 类和对象(二).ppt
- 《软件工程》课程学习资料:软件工程思想(林锐).pdf
- 中国矿业大学:《密码学》课程教学资源(PPT讲稿)认证协议(Authentication Protocol)Introduction(主讲:曹天杰).ppt
- 中国矿业大学:《密码学》课程教学资源(PPT讲稿)认证协议(Authentication Protocol)Block ciphers-AES.ppt
- 中国矿业大学:《密码学》课程教学资源(PPT讲稿)认证协议(Authentication Protocol)Block ciphers-DES.ppt
- 中国矿业大学:《密码学》课程教学资源(PPT讲稿)认证协议(Authentication Protocol)Block ciphers-L&D.ppt
- 中国矿业大学:《密码学》课程教学资源(PPT讲稿)认证协议(Authentication Protocol)CRYPTO12.ppt
- 中国矿业大学:《密码学》课程教学资源(PPT讲稿)认证协议(Authentication Protocol)Digital Signature.ppt
- 中国矿业大学:《密码学》课程教学资源(PPT讲稿)认证协议(Authentication Protocol)HashFunctions.ppt
- 中国矿业大学:《密码学》课程教学资源(PPT讲稿)认证协议(Authentication Protocol)Lecture 3 Number Theory Basics I.ppt
- 中国矿业大学:《密码学》课程教学资源(PPT讲稿)认证协议(Authentication Protocol)NTHEORY 2 Group Theory and Number.ppt
- 中国矿业大学:《密码学》课程教学资源(PPT讲稿)认证协议(Authentication Protocol)Attacks, Services, and Mechanisms.ppt
- 中国矿业大学:《密码学》课程教学资源(PPT讲稿)认证协议(Authentication Protocol)overview.ppt
- 中国矿业大学:《密码学》课程教学资源(PPT讲稿)认证协议(Authentication Protocol)Public Key Cryptography1.ppt
- 中国矿业大学:《密码学》课程教学资源(PPT讲稿)认证协议(Authentication Protocol)Public Key Cryptography2.ppt
- 中国矿业大学:《密码学》课程教学资源(PPT讲稿)认证协议(Authentication Protocol)security protocols.ppt
- 《操作系统原理》课程教学资源(PPT课件讲稿)前言.ppt
- 《操作系统原理》课程教学资源(PPT课件讲稿)第1章 操作系统概论.ppt
- 《操作系统原理》课程教学资源(PPT课件讲稿)第2章 Linux概述.ppt