第4章 函数和预处理.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

4.7函数重载同一个函数名可以对应多个函数的实现。产生背景:求和:不同数据类型求和(整数、浮点数……)思想:采用同一函数名,符合人们的习惯要求:同名函数在参数个数或参数类型上不同intsum(int,int);intsum(int,int,int);intabs(int);floatabs(float);doubleabs(double);第61页,共83页,星期日,2025年,2月5日根据调用的函数名,在整个程序范围内搜索同名函数检查函数的参数表(实参个数、类型、顺序)找到与形参表对应一致的传递参数(将实参-形参)执行函数体返回调用点并返回要求的函数返回值执行流程第62页,共83页,星期日,2025年,2月5日#includeiostream.hstructcomplex{ doublereal; doubleimaginary;};intadd(intx,inty){ returnx+y;}doubleadd(doublex,doubley){ returnx+y;}complexadd(complexc1,complexc2){ complexc; c.real=c1.real+c2.real; c.imaginary=c1.imaginary+c2.imaginary; returnc;}例:根据实参类型选择函数(两数求和)第63页,共83页,星期日,2025年,2月5日voidmain(){ intm=10,n=11; doublex=1.1,y=1.2; complexc1,c2,c3; coutadd(m,n)endl; coutadd(x,y)endl; c1.real=1.0; c1.imaginary=2.0; c2.real=3.0; c2.imaginary=4.0; c3=add(c1,c2); cout(c3.real,c2.imaginary);}根据实参类型选择函数第64页,共83页,星期日,2025年,2月5日#includeiostream.hintmin(inta,intb){returnab?a:b;}intmin(inta,intb,intc){intt=min(a,b);returnmin(t,c);}intmin(inta,intb,intc,intd){intt=min(a,b,c);returnmin(t,d);}voidmain(){coutmin(13,5,4,9)endl;coutmin(-2,8,0)endl;}例:根据实参个数选择函数(求最小值)第65页,共83页,星期日,2025年,2月5日注意返回类型不能区分函数floatadd(int,float);intadd(int,float);编译器只根据参数个数和类型来区分同名函数引用参数不能区分函数voidprint(double);voidprint(double);voidprint(constdouble);完整例第66页,共83页,星期日,2025年,2月5日voidprint(doublea){couta;};voidprint(doublea){couta;};voidprint(constdoublea){couta;};voidmain(){doublea;print(a);}编译结果出错!C2668:print:ambiguouscalltooverloadedfunction目录第67页,共83页,星期日,2025年,2月5日4.8#预编译命令4.8.1文件包含命令4.8.2宏定义命令4.8.3条件编译命令第68页,共83页,星期日,2025年,2月5日4.4作用域作用域(讨论标识符的有效范围)变量的作用域是指程序中变量有效的区域。分为三类:文件域局部域类域。第29页,共83页,星期日,2025年,2月5日#includeiostream.hintglobal;voidf(intpar){ intflocal; if(global) { intblocal; blocal=par; blocal=1; flocal=1

文档评论(0)

xiaolan118 + 关注
实名认证
文档贡献者

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档