




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 函数的重载函数的重载是指建立多个同名的函数,但函数的形参表必须是指建立多个同名的函数,但函数的形参表必须互不相同互不相同。不相不相同同可是形参个数不同,也可是形参的类型不同,还可两者都不相同。可是形参个数不同,也可是形参的类型不同,还可两者都不相同。例如:例如:int fun(int,int); int fun(int);long fun(int,long);long fun(long);重载函数的重载函数的返回类型返回类型,即函数类型可以相同,也可以不同。如果仅,即函数类型可以相同,也可以不同。如果仅仅是仅是返回类型不同,而函数名相同、形参表也相同返回类型不同,而函数名相同、形参表也相同,
2、则是,则是非法的非法的。例如:例如:int fun(int a,int b);long fun(int a,int b);例如:例如:int fun(int a,int b);int fun(int x,int y);函数重载又称函数重载又称函数的多态性函数的多态性。它通过改变形参的个数或类型使。它通过改变形参的个数或类型使多个函数共用一个函数名。多个函数共用一个函数名。合法的重载函数合法的重载函数不合法的不合法的说明:合法的。但说明:合法的。但不是重载。不是重载。它只是对同它只是对同一函数原型的多次声明。一函数原型的多次声明。【 5.1 重载函数重载函数】 #includeint add(i
3、nt a,int b);long add(long a,long b);float add(float a,float b);double add(double a,double b);void main() int integer1=100, integer2=200; long longint1=200L, longint2=400L; float floatdigit1=5.5f, floatdigit2=10.6f; double doubledigit1=5.5e22, doubledigit2=4.4e20; cout INT: endl; coutadd(integer1,int
4、eger2)endl; coutendl LONG: endl; coutadd(longint1,longint2)endl; coutendl FLOAT: endl; coutadd(floatdigit1,floatdigit2)endl; coutendl DOUBLE: endl; coutadd(doubledigit1,doubledigit2)endl;int add(int a,int b) cout In int add(int a,int b) endl; couta+b=; return(a+b);long add(long a,long b) cout In lon
5、g add(long a,long b) endl; couta+bb; if (b0) int c; . c的作用域b的作用域l类作用域作用于特定的成员名,类及其类作用域作用于特定的成员名,类及其对象有特殊的访问和作用域规则。对象有特殊的访问和作用域规则。l在所有函数定义之外声明的标识符在所有函数定义之外声明的标识符,具有具有文件作用域,这样声明的标识符的作用文件作用域,这样声明的标识符的作用域开始于声明点,结束于文件尾。域开始于声明点,结束于文件尾。l可见性是从对标识符的引用的角度来谈的概念可见性是从对标识符的引用的角度来谈的概念l程序运行到某一点能够引用到的标识符程序运行到某一点能够引用
6、到的标识符,就是该处可见就是该处可见的标识符的标识符,也可以说该标识符在这里是可见的。也可以说该标识符在这里是可见的。标识符应声明在先,引用在后。标识符应声明在先,引用在后。在同一作用域中,不能声明同名的标识符。在同一作用域中,不能声明同名的标识符。如果某个标识符在外层中声明,且在内层中没有同如果某个标识符在外层中声明,且在内层中没有同一标识符的声明,则该标识符在内层可见。一标识符的声明,则该标识符在内层可见。对于两个嵌套的作用域,如果在内层作用域内声明对于两个嵌套的作用域,如果在内层作用域内声明了与外层作用域中同名的标识符,则外层作用域的了与外层作用域中同名的标识符,则外层作用域的标识符在内
7、层不可见标识符在内层不可见。#includeint i,j; /文件作用域文件作用域int main( ) i=5;j=10; int i; /块作用域块作用域 i=7; couti=iendl; /输出输出7 cout“j=jendl; /输出输出10 couti=i; /输出输出5 return 0;例例5.3 使用作用域标识符的情况。使用作用域标识符的情况。#includeint avar;main() int avar; avar=25; / 局部变量局部变量avar :avar=10; / 全局变量全局变量avar coutlocal avar =avarendl; coutglob
8、al avar =:avarendl; return 0;程序运行结果如下程序运行结果如下: local avar=25 global avar=10#includeint i=5; /文件作用域文件作用域int main( ) couti=iendl; return 0;i具有静态生存具有静态生存期期 这种生存期与程序的运行期相同。这种生存期与程序的运行期相同。 在文件作用域中声明的对象具有这种生存期。在文件作用域中声明的对象具有这种生存期。 在函数内部声明静态生存期对象,要冠以关键字在函数内部声明静态生存期对象,要冠以关键字static 。对象从产生到结束的这段时间就是它的生存期。在对象从
9、产生到结束的这段时间就是它的生存期。在对象生存期内,对象将保持它的值,直到被更新为止。对象生存期内,对象将保持它的值,直到被更新为止。静态生存期l块作用域中声明的对象是动态生存期的块作用域中声明的对象是动态生存期的对象(习惯称局部生存期对象)。对象(习惯称局部生存期对象)。l开始于程序执行到声明点时,结束于命开始于程序执行到声明点时,结束于命名该标识符的作用域结束处。名该标识符的作用域结束处。#includevoid fun( );void main( ) fun( ); fun( );void fun( ) static int a=1; int i=5; a+; i+; couti=i,a
10、=aendl;运行结果:i=6, a=2i=6, a=3i是动态生存期a是静态生存期#includeint i=1; / i 为全局变量,具有静态生存期。为全局变量,具有静态生存期。void main(void) static int a; / 静态局部变量,有全局寿命,局部可见。静态局部变量,有全局寿命,局部可见。 int b=-10; / b, c为局部变量,具有动态生存期。为局部变量,具有动态生存期。 int c=0; void other(void); cout-MAIN-n; cout i: i a: a b: b c: cendl; c=c+8; other( ); cout-MA
11、IN-n; cout i: i a: a b: b c: cendl; i=i+10; other( ); void other( ) static int a=2; static int b; / a,b为静态局部变量,具有全局寿命,局部可见。为静态局部变量,具有全局寿命,局部可见。 /只第一次进入函数时被初始化。只第一次进入函数时被初始化。 int c=10; / C为局部变量,具有动态生存期,为局部变量,具有动态生存期, /每次进入函数时都初始化。每次进入函数时都初始化。 a=a+2; i=i+32; c=c+5; cout-OTHER-n; cout i: i a: a b: b c: cendl; b=a;运行结果:-MAIN- i: 1 a: 0 b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 赠送协议合同
- 买卖房子合同协议文本
- 拆迁合同保密协议
- 海鲜协议采购合同
- 在途协议合同
- 解除收购合同协议书范本
- 买卖合同解除协议律师版
- 维修学徒协议怎么写合同
- 合同养鸡协议内容
- 四方采购协议合同范本
- (省统测)贵州省2025年4月高三年级适应性考试(选择性考试科目)历史试卷(含答案)
- 浙江国企招聘2025宁波枢智交通科技有限公司招聘21人笔试参考题库附带答案详解
- 2021麓湖生态城-麓客社群实操及方法论
- Unit 3 Section A 3a-3c【 核心精讲+备课精研+高效课堂 】八年级英语下册单元 课件(人教版)
- 美术《印象主义-莫奈》教学课件
- 知识图谱课件
- 内科体检操作课件
- 薪酬管理第6版第9章课件
- 高中历史选修二 第12课 水陆交通的变迁 课件(51张)
- JJF(纺织)062-2010 电子式织物强力机校准规范-(高清现行)
- 最新北师大版小学六年级数学下册第二次月考(3~4单元)检测试卷附答案
评论
0/150
提交评论