C++程序设计-CH-3 函数和函数模板

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章函数和函数模板3.1函数的定义与调用3.2函数参数的传递3.3函数调用机制3.4函数指针3.5内联函数和重载函数3.6变量存储特性与标识符作用域3.7多文件结构程序3.8命名空间3.9终止程序执行小结第3章函数和函数模板函数(Function)是功能抽象的模块函数参数返回值输入流输出流第3章函数和函数模板函数(Function)是功能抽象的模块函数作用——任务划分;代码重用函数是C++程序的重要组件函数定义由两部分组成:函数首部和函数操作描述函数调用是通过表达式或语句激活并执行函数代码的过程3.1函数的定义和调用//求圆柱体体积#includeiostreamusingnamespacestd;doublevolume(doubleradius,doubleheight){return3.14*radius*radius*height;}intmain(){doublevol,r,h;cinrh;vol=volume(r,h);coutVolume=volendl;}函数定义由两部分组成:函数首部和函数操作描述函数调用是通过表达式或语句激活并执行函数代码的过程3.1函数的定义和调用//求圆柱体体积#includeiostreamusingnamespacestd;doublevolume(doubleradius,doubleheight){return3.14*radius*radius*height;}intmain(){doublevol,r,h;cinrh;vol=volume(r,h);coutVolume=volendl;}函数定义函数定义由两部分组成:函数首部和函数操作描述函数调用是通过表达式或语句激活并执行函数代码的过程3.1函数的定义和调用//求圆柱体体积#includeiostreamusingnamespacestd;doublevolume(doubleradius,doubleheight){return3.14*radius*radius*height;}intmain(){doublevol,r,h;cinrh;vol=volume(r,h);coutVolume=volendl;}函数调用函数定义形式类型函数名(形式参数表){语句序列}3.1.1函数定义3.1.1函数定义函数定义形式类型函数名(形式参数表){语句序列}3.1.1函数定义函数头——函数接口,包括:3.1.1函数定义函数定义形式类型函数名(形式参数表){语句序列}3.1.1函数定义函数头——函数接口,包括:函数返回值类型函数体中由return语句返回的值的类型。没有返回值其类型为void3.1.1函数定义函数定义形式类型函数名(形式参数表){语句序列}3.1.1函数定义函数头——函数接口,包括:函数返回值类型函数体中由return语句返回的值的类型。没有返回值其类型为void函数名用户定义标识符3.1.1函数定义函数定义形式类型函数名(形式参数表){语句序列}3.1.1函数定义函数头——函数接口,包括:函数返回值类型函数体中由return语句返回的值的类型。没有返回值其类型为void函数名用户定义标识符形式参数表逗号分隔的参数说明表列,缺省形式参数时不能省略圆括号。一般形式为:类型参数1,类型参数2,…,类型参数n3.1.1函数定义函数定义形式3.1.1函数定义函数头——函数接口类型函数名(形式参数表){语句序列}函数体——函数的实现代码。3.1.1函数定义例3-13.1.1函数定义voidprintmessage(){coutHowdoyoudo!endl;}3.1.1函数定义例3-13.1.1函数定义voidprintmessage(){coutHowdoyoudo!endl;}函数返回值类型无返回值3.1.1函数定义例3-13.1.1函数定义voidprintmessage(){coutHowdoyoudo!endl;}函数名3.1.1函数定义例3-13.1.1函数定义voidprintmessage(){coutHowdoyoudo!endl;}形式参数表无参数3.1.1函数定义例3-13.1.1函数定义voidprintmessage(){coutHowdoyoudo!endl;}函数体无return语句3.1.1函数定义例3-23.1.1函数定义doublemax(doublex,doubley){if(xy)returnx;elsereturny;}3.1.1函数定义例3-23.1.1函数定义doublemax(doublex,doubley){if(xy)returnx;elsereturny;}函数返回值类型3.1.1函数定义例3-23.1.1函数定义doublemax(doublex,doubley){if(xy)returnx;elsereturny;}函数名3.1.1函数定义例3-23.1.1函数定义doublemax(doublex,doubley){if(xy)returnx;elsereturny;}形式参数表3.1.1函数定义例3-23.1.1函数定义doublemax(doublex,doubley){if(xy)returnx;elsereturny;}函数体3.1.1函数定义例3-23.1.1函数定义doublemax(doublex,doubley){if(xy)returnx;elsereturny;}返回值return语句形式:return表达式或return(表达式)作用:•返回函数值•不再执行后续语句,程序控制返回调用点一个函数体内可以有多个return语句•表达式返回值的类型与函数类型不相同时,自动强制转换成函数的类型3.1.1函数定义例3-23.1.1函数定义doublemax(doublex,doubley){if(xy)returnx;elsereturny;}TypeFunctionName(){//statementsreturnexpression;}voidFunctionName(){//statementsreturn;//可省略}3.1.1函数定义调用形式函数名(实际参数表)3.1.2函数调用3.1.2函数调用调用形式函数名(实际参数表)3.1.2函数调用函数名函数的入口地址3.1.2函数调用调用形式函数名(实际参数表)3.1.2函数调用函数名函数的入口地址实际参数表与形式参数必须在个数、类型、位置一一对应3.1.2函数调用调用形式函数名(实际参数表)3.1.2函数调用函数名函数的入口地址实际参数表与形式参数必须在个数、类型、位置一一对应3.1.2函数调用用表达式或语句形式调用;若函数返回值类型为void,则只能用语句调用3.1.2函数调用#includeiostreamusingnamespacestd;voidprintmessage(){coutHowdoyoudo!endl;}intmain(){printmessage();}例3-13.1.2函数调用3.1.2函数调用#includeiostreamusingnamespacestd;voidprintmessage(){coutHowdoyoudo!endl;}intmain(){printmessage();}函数调用语句例3-13.1.2函数调用3.1.2函数调用例3-2#includeiostreamusingnamespacestd;doublemax(doublex,doubley){if(xy)returnx;elsereturny;}intmain(){doublea,b;cinab;doublem=max(a,b);coutmax(m,3.5)endl;}3.1.2函数调用3.1.2函数调用例3-2#includeiostreamusingnamespacestd;doublemax(doublex,doubley){if(xy)returnx;elsereturny;}intmain(){doublea,b;cinab;doublem=max(a,b);coutmax(m,3.5)endl;}函数调用表达式3.1.2函数调用3.1.2函数调用例3-2#includeiostreamusingnamespacestd;doublemax(doublex,doubley){if(xy)returnx;elsereturny;}intmain(){doublea,b;cinab;doublem=max(a,b);coutmax(m,a+3.5)endl;}coutmax(max(a,b),a+3.5)endl;实际参数是表达式3.1.2函数调用3.1.3函数原型函数原型的作用是告诉编译器有关函数的信息:函数的名字函数返回的数据类型函数要接受的参数个数、参数类型和参数的顺序编译器根据函数原型检查函数调用的正确性函数原型的形式:类型函数名(形式参数表);3.1.3函数原型3.1.3函数原型函数原型的作用是告诉编译器有关函数的信息:函数的名字函数返回的数据类型函数要接受的参数个数、参数类型和参数的顺序编译器根据函数原型检查函数调用的正确性函数原型的形式:类型函数名(形式参数表);函数原型是声明语句3.1.3函数原型3.1.3函数原型#includeiostreamusingnamespacestd;doublemax(double,double);//函数原型intmain(){doublea,b,c,m1,m2;coutinputa,b,c:\n;cinabc;m1=max(a,b);//函数调用m2=max(m1,c);coutMaximum=m2endl;}doublemax(doublex,doubley)//函数定义{if(xy)returnx;elsereturny;}使用函数原型3.1.3函数原型3.1.3函数原型#includeiostreamusingnamespacestd;doublemax(double,double);//函数原型intmain(){doublea,b,c,m1,m2;coutinputa,b,c:\n;cinabc;m1=max(a,b);//函数调用m2=max(m1,c);coutMaximum=m2endl;}doublemax(doublex,doubley)//函数定义{if(xy)returnx;elsereturny;}函数原型的参数表不需要参数名使用函数原型3.1.3函数原型3.1.3函数原型#includeiostreamusingnamespacestd;doublemax(double,double);//函数原型intmain(){doublea,b,c,m1,m2;coutinputa,b,c:\n;cinabc;m1=max(a,b);//函数调用m2=max(m1,c);coutMaximum=m2endl;}doublemax(doublex,doubley)//函数定义{if(xy)returnx;elsereturny;}函数调用出现在定义之前函数原型声明是必须的使用函数原型3.1.3函数原型3.1.3函数原型函数定义在调用之前#includeiostreamusingnamespacestd;doublemax(doublex,doubley)//函数定义{if(xy)returnx;elsereturny;}intmain(){doublea,b,c,m1,m2;coutinputa,b,c:\n;cinabc;m1

1 / 404
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功