[计算机软件及应用]第5章 重 载.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文档。上传文档
查看更多
[计算机软件及应用]第5章 重 载

第5章 重 载 自然语言中一个词可以代表许多种不同的含义,需要依赖上下文来确定。如“打(打球,打人,打毛衣)”,这就是所谓一词多义,反映到程序中就是重载(overload)。再如,“擦桌子、擦皮鞋、擦黑板”,都用了同一个“擦”字,但所使用的方法截然不同,人类完全可以理解这样的语言,计算机是否也具有同样的能力呢? C++语言提供了对函数重载的支持,使我们在编程时可以对不同的功能赋予相同的函数名,编译时会根据上下文(实参的类型和个数)来确定使用哪一具体功能。 C++重载分为函数重载和运算符重载,这两种重载的实质是一样的,因为进行运算可以理解为是调用一个函数。通过使用重载机制,可以对一个函数名(或运算符)定义多个函数(或运算功能),只不过要求这些函数的参数(或参加运算的操作数)有所不同。重载使C++具有更好的可扩充性。 5.1 函数重载 函数重载允许一个程序内声明多个名称相同的函数,这些函数可以完成不同的功能,并可以带有不同类型、不同数目的参数及返问值。使用函数重载可以减轻用户的记忆负担,并使程序简单易懂。 例如 定义加法函数 (1)如果没有重载机制,对不同类型的数据进行相同的操作也需要定义名称完全不同的函数,如: int iadd(int x,int y); float fadd(float x,float y); (2)形参类型不同的重载,如: int add(int x,int y); float add(float x,float y); (3)形参个数不同的重载,如: int add(int x,int y); int add(int x,int y,int z); 当C++编译器遇到重载函数的调用语句时,它能够根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数。即从函数参数的个数和类型上来区分。 注意: ① 重载函数的返回类型,即函数类型可以相同,也可以不同。 但如果仅仅是返回类型不同,而函数名相同、形参表也相同, 则是非法的。在编译时会认为是语法错误。例如: int add(int a,int b) float add(int a,int b) //错误!编译器不以返回值来区分函数 ② 还有一种情况,如: int add(int a,int b) int add(int x,int y) //错误!编译器不以形参名来区分函数 虽然是合法的,但不是重载。它只是对同一函数原型的多次声明。 ③不要将不同功能的函数定义为重载函数,以免出现对调用结果的误解、混淆。如: int add(int x,int y) {return x+y;} float add(float x,float y){return x-y;} 【例5-1】求两个操作数之和。 #include iostream.h int add(int,int);???????????? //函数原型声明 double add(double,double);??? //函数原型声明 void main( ) { coutadd(5,10)endl; coutadd(5.0,10.5)endl; } int add(int x,int y)???????? //函数定义 { return x+y; } double add(double a,double b)//函数定义 { return a+b; } 【例5-2】下面程序找出几个整型数据中的最小值。 #include iostream.h int min(int a,int b);????????????? //函数原型声明 int min(int a,int b,int c); int min(int a,int b,int c,int d); void main( ) { cout min(13,5,4,9)endl; } int min(int a,int b)?????????????? //函数定义? { return ab?a:b; } int min(int a,int b,int c) { int t=min(a,b); return min(t,c); } int min(int a,int b,int c,int d) { int t1=min(a,b,c); return min(t1,d); } 1. 什么是运算符重载 所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新功

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档