资源预览内容
第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
第9页 / 共28页
第10页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
计算机程序设计基础第六讲 函数(2)清华大学 郑 莉教材:C+语言程序设计(第4版)第3章 3.23.7摹氏请炕忙异萍墨翼肉漠獭丫改叔袭生兽帽鸡骄宽座粹汐杠玄滥晦驶脾设第6讲函数2297205094第6讲函数2297205094C+语言程序设计(第4版),郑莉,清华大学目录6.1 内联函数6.2 带缺省形参值的函数6.3 函数重载6.4 使用C+系统函数6.5 深度探索6.6 小结2汇囤绅舍脑静昔梆费怯漠驾藕绢模镁僳呕醒铲靡春榷绕深肠俩巩恳趁庙断第6讲函数2297205094第6讲函数2297205094C+语言程序设计(第4版),郑莉,清华大学6.1 内联函数声明时使用关键字inline。编译时在调用处用函数体进行替换,节省了参数传递、控制转移等开销。注意:内联函数体内不能有循环语句和switch语句。内联函数的声明必须出现在内联函数第一次被调用之前。对内联函数不能进行异常接口声明。3拨漠炬班罗猖唉凹墅丰丈迂酒踊菱逻拒钢屯滨腥顷备蠢碾萄晌栖恩嘻焰归第6讲函数2297205094第6讲函数2297205094C+语言程序设计(第4版),郑莉,清华大学例6-1(教材例3-14 )内联函数应用举例#includeusingnamespacestd;constdoublePI=3.14159265358979;inlinedoublecalArea(doubleradius)returnPI*radius*radius;intmain()doubler=3.0;doublearea =calArea(r);coutareaendl;return0;46.1 内联函数放膳宜票曰有血努赫屋佐彬仓快台钵奉禽孺莽赣橇钎熄据嘶重瞎鹃蓟茶嘛第6讲函数2297205094第6讲函数2297205094C+语言程序设计(第4版),郑莉,清华大学6.2 带缺省形参值的函数函数在声明时可以预先给出缺省的形参值,调用时如给出实参,则采用实参值,否则采用预先给出的缺省形参值。例如:intadd(intx=5,inty=6)returnx+y;intmain()add(10,20);/10+20add(10);/10+6add();/5+65割舰啮挠炽潦结虎暇力筷簇崩伙脸疤茶甸烷铺弹饭读脏眉逆计辽体装揉呆第6讲函数2297205094第6讲函数2297205094C+语言程序设计(第4版),郑莉,清华大学缺省形参值的说明次序有缺省参数的形参必须在形参列表的最后,也就是说缺省形参值的右面不能有无缺省值的参数。因为调用时实参与形参的结合是从左向右的顺序。例:intadd(intx,inty=5,intz=6);/正确intadd(intx=1,inty=5,intz);/错误intadd(intx=1,inty,intz=6);/错误66.2 带缺省形参值的函数他孔蒲弧忘崭丘玲磊江撕颠尖炳吓烟苯瞥掷待靶桌贸洋冀巍近溉雁厚陆嘎第6讲函数2297205094第6讲函数2297205094C+语言程序设计(第4版),郑莉,清华大学缺省形参值与函数的调用位置如果一个函数有原型声明,且原型声明在定义之前,则缺省形参值必须在函数原型声明中给出;而如果只有函数的定义,或函数定义在前,则缺省形参值需在函数定义中给出。例:76.2 带缺省形参值的函数intadd(intx=5,inty=6)/只有定义,没有原型声明returnx+y;intmain()add();intadd(intx=5,inty=6);/原型声明在前intmain()add();intadd(intx,inty)/此处不能再指定缺省值returnx+y;刺坊欢台妹当魂番寻送绅胆喘竟埠拟卉耿子迁青柠癣丹漠敖孺突浆动宜岸第6讲函数2297205094第6讲函数2297205094C+语言程序设计(第4版),郑莉,清华大学例6-2(教材例3-15)计算长方体的体积 子函数getVolume是计算体积的函数,有三个形参:length(长)、width(宽)、height(高),其中width和height带有缺省值。主函数中以不同形式调用getVolume函数,分析程序的运行结果。86.2 带缺省形参值的函数焉愚票祷勤愈桨龚拙枉旱吃扎梭可腑始辞滴昧板獭谊瞻萤兑泰周搅乌酶赢第6讲函数2297205094第6讲函数2297205094C+语言程序设计(第4版),郑莉,清华大学#include#includeusingnamespacestd;intgetVolume(intlength,intwidth=2,intheight=3);intmain()constintX=10,Y=12,Z=15;coutSomeboxdatais;coutgetVolume(X,Y,Z)endl;coutSomeboxdatais;coutgetVolume(X,Y)endl;coutSomeboxdatais;coutgetVolume(X)endl;return0;intgetVolume(intlength,intwidth/*=2*/,intheight/*=3*/)coutsetw(5)lengthsetw(5)widthsetw(5)heightt;returnlength*width*height;96.2 带缺省形参值的函数例6-2(续)跨互诧盅遗杂猫爽把准烩乐嘉碴舔议炎泉悯触递士飞倒受赛鹤裔戒陶伪淆第6讲函数2297205094第6讲函数2297205094C+语言程序设计(第4版),郑莉,清华大学6.3 函数重载C+允许功能相近的函数在相同的作用域内以相同函数名声明,从而形成重载。方便使用,便于记忆。例:10形参类型不同intadd(intx,inty);floatadd(floatx,floaty);形参个数不同intadd(intx,inty);intadd(intx,inty,intz);怒索仑瑟历盾暴旷倦旦后墓跳伍吩蝴厌膝痛效靶平婪矢碱庚便剔仁敢旭择第6讲函数2297205094第6讲函数2297205094C+语言程序设计(第4版),郑莉,清华大学注意事项116.3 函数重载不要将不同功能的函数声明为重载函数,以免出现调用结果的误解、混淆。这样不好:intadd(intx,inty);intadd(inta,intb);编译器不以形参名来区分intadd(intx,inty);voidadd(intx,inty);编译器不以返回值来区分intadd(intx,inty)returnx+ y;floatadd(floatx,floaty)returnx- y;重载函数的形参必须不同:个数不同或类型不同。编译程序将根据实参和形参的类型及个数的最佳匹配来选择调用哪一个函数。蚀侠涣懂爪宠嫉淹灰侣郊援篆兰坠巩卿沙驴拯师坐鳃角晴杭勒哪惠警镇朵第6讲函数2297205094第6讲函数2297205094C+语言程序设计(第4版),郑莉,清华大学例6-3(教材例3-16)重载函数应用举例编写两个名为sumOfSquare的重载函数,分别求两整数的平方和及两实数的平方和。126.3 函数重载轩坟禽苞莆嘶鉴模息谈苞停父皂蛛彪院多午喧图眺叶猜蠢决饿蓑腐坷统祖第6讲函数2297205094第6讲函数2297205094C+语言程序设计(第4版),郑莉,清华大学#includeusingnamespacestd;intsumOfSquare(inta,intb)returna*a+b*b;doublesumOfSquare(doublea,doubleb)returna*a+b*b;intmain()intm,n;coutmn;coutTheirsumofsquare:sumOfSquare(m,n)endl;doublex,y;coutxy;coutTheirsumofsquare:sumOfSquare(x,y)endl;return0;136.3 函数重载例6-3(续)刘兢勿氦疯腻鬼饵吩誊喇伞萍泌疚赣践名窑呛部糖奎膳灼恫妹炯好峦据虽第6讲函数2297205094第6讲函数2297205094C+语言程序设计(第4版),郑莉,清华大学运行结果:运行结果:Enter two integer: 3 5Their sum of square: 34Enter two real number: 2.3 5.8Their sum of square: 38.93例6-3(续)6.3 函数重载劈阑匠串稚篇炼荣施腮饥冰浅讼偏匀绳胰坡察饥恭泄谣悟泻辨恳瘴汰嫩丘第6讲函数2297205094第6讲函数2297205094C+语言程序设计(第4版),郑莉,清华大学6.4 使用C+系统函数C+的系统库中提供了几百个函数可供程序员使用。例如:求平方根函数(sprt)、求绝对值函数(abs)等。使用系统函数时要包含相应的头文件。例如:cmath 或 math.h15怒律境苯表山淆悼捷外卉旷壤莽慎会僚培仙收醒苟穿旺灸向芋捧椭肖厅尸第6讲函数2297205094第6讲函数2297205094C+语言程序设计(第4版),郑莉,清华大学例6-4(教材例3-17) 系统函数应用举例题目:从键盘输入一个角度值,求出该角度的正弦值、余弦值和正切值。分析:系统函数中提供了求正弦值、余弦值和正切值的函数:sin()、cos()、tan(),函数的说明在头文件cmath中。166.4 使用C+系统函数批移了孽植娱堪涎怯毯慈姓演辗容茵椰睡估孽阴俞伴淖辖涟耗转到旗募焕第6讲函数2297205094第6讲函数2297205094C+语言程序设计(第4版),郑莉,清华大学#include#includeusingnamespacestd;constdoublePI=3.14159265358979;intmain()doubleangle;coutangle;/输入角度值doubleradian=angle*PI/180;/转化为弧度值coutsin(angle)=sin(radian)endl;coutcos(angle)=cos(radian)endl;couttan(angle)=tan(radian)VisualStudio-VisualC+-Reference-LibrariesReference-Run-TimeLibrary-Run-TimeRoutinesbyCategory196.4 使用C+系统函数修剧纺访蹋趾悍樟珊殴矿率匿背炊凑整蹋屠惨尚辕海榜卑胯钢洒拂刮烬刮第6讲函数2297205094第6讲函数2297205094C+语言程序设计(第4版),郑莉,清华大学6.6 小结主要内容内联函数、带默认形参值的函数、函数重载、C+系统函数达到的目标学会将一段功能相对独立的程序写成一个函数,为下一讲学习类和对象打好必要的基础。28辅挫眩弗生攀位伍惮遗讽梭蛮滞垮敖诸庇量虚奥委捐喧蚁彭肩呐康锦茬树第6讲函数2297205094第6讲函数2297205094
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号