




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、刘从彬主要主要知识点知识点 引用作参数 内联函数的定义与特点 带默认形参值函数的特点与使用 函数重载的概念与特点 重点重点 函数引用做参数(*) 内联函数 带默认参数的函数函数参数的传递函数参数的传递Sample 4-4:输入两个整数a、b交换后输出 void swap(int a,int b);int main()int x(5),y(10);cout调用前:x=xy=yendl;swap(x,y);cout调用后:x=xy=yendl;return 0;void swap(int a,int b)int t;t=a;a=b;b=t;运行结果: 用引用作形参用引用作形参void Swap(i
2、nt &a, int &b); /函数声明int main()int x=5,y=10;cout调用前:x=xy=yendl; Swap(x,y); /函数调用cout调用后:x=xy=yendl;return 0;void swap(int &a,int &b)int t;t=a;a=b;b=t;运行结果: 引用(引用(*) 引用的概念:引用就是一个变量的别名 当定义一个引用时,应该同时将其初始化为另一个对象名 一旦一个引用被初始化后,就不能改为指向其他对象区分指针和引用:指针是表示其他地址的变量引用是一个对象的别名 声明声明一个引用一个引用 声明声明一个引用
3、的格式是一个引用的格式是: 类型名类型名+“&”+引用名引用名 例如例如:n是是m的一个引用:的一个引用:int m;int &n = m; n相当于相当于m的别名(绰号),对的别名(绰号),对n的任何操作就是对的任何操作就是对m的操作。的操作。 例如例如有人名叫王小毛,他的绰号是有人名叫王小毛,他的绰号是“三毛三毛”。说。说“三毛三毛” 怎么怎么怎么的,其实就是对王小毛说三道四。所以怎么的,其实就是对王小毛说三道四。所以n既不是既不是m的拷贝,也不是指向的拷贝,也不是指向m的指针,的指针,其实其实n就是就是m它自己。它自己。8 Page 8引引 用用 例题例题:将将k初始化初
4、始化为为i的的引用,引用,并将并将k=j:int i = 5; int j = 6;int &k = i; /读作读作“k是一个整型是一个整型i的引用,并被初始化为的引用,并被初始化为i” k = j; / k和和i的值都变成了的值都变成了6 语句语句k = j把把k的值改变成为的值改变成为6。由于。由于k是是i的引用的引用,所以,所以i的值也的值也变成了变成了6。5ik6ikvint a;vint &b=a;vfloat x1;vfloat &x2=x1;vx2=3; x1=?vb=10; a=? 举一反三:函数参数的传递函数参数的传递Sample 4-4:输入两个整
5、数a、b交换后输出 void swap(int a,int b);int main()int x(5),y(10);cout&x“”¥dl;cout调用前:x=xy=yendl;swap(x,y);cout调用后:x=xy=yendl;return 0;void swap(int a,int b)int t;t=a;a=b;b=t;cout&a“”&bendl;运行结果: 再看再看Sample 4-4:传值和传引用的比较:传值和传引用的比较void Swap(int &a, int &b); /函数声明int main()int x=5,y
6、=10;cout&x“”¥dl;cout调用前:x=xy=yendl; Swap(x,y); /函数调用cout调用后:x=xy=yendl;return 0;void swap(int &a,int &b)int t;t=a;a=b;b=t;cout&a“”&bendl;运行结果: 内内联函数联函数12 声明时使用关键字 inline。 作用:当编译器发现某段代码在调用一个内联函数时,它不是去调用该函数,而是将该函数的代码,整段插入到当前位置。这样做的好处是省去了调用的过程,加快程序运行速度。注意:内联函数体内不能有循环语句和switch
7、语句。内联函数的声明必须出现在内联函数第一次被调用之前。功能简单,规模较小而又使用频繁的函数可以设计为内联函数。inline 类型说明符类型说明符 函数名(形参表)函数名(形参表)内内联函数举例联函数举例 (Sample 4-5Sample 4-5)求三个数中的最大数#includeusing namespace std;inline int max(int,int,int);int main()int i=10,j=20,k=30,m;m=max(i,j,k);coutmax=mendl;return 0;inline int max(int a,int b,int c)if(ab) a=b
8、;if(ac) a=c;return a;编译时将被置换成:编译时将被置换成:if(ij) i=j;if(ik) i=k; m=i;编译系统在遇到函数调用max(i, j, k)时,就用max函数的代码代替max(I,j,k),同时将实参代替形参14带默认参数的函数带默认参数的函数 函数在声明时可以预先给出默认的形参值,调用时如给出实参,则采用实参值,否则采用预先给出的默认形参值。 例如:int max(int a,int b,int c)if(ab) a=b;if(ai1i2i3;i=max(i1,i2,i3);couti=id1d2d3;d=max(d1,d2,d3);coutd=dg1g
9、2g3;g=max(g1,g2,g3);coutg=gendl;return 0;int max(int a,int b,int c) if(ab) a=b; if(ac) a=c; return a; double max(double a,double b,double c) if(ab) a=b; if(ac) a=c; return a;long max(long a,long b,long c) if(ab) a=b; if(ac) a=c; return a;求最大数(参数个数不同)求最大数(参数个数不同) (SampleSample 4-74-7)int max(int, int
10、, int);int max(int,int);int main()int a=8,b=-12,c=27;coutmax(a,b,c)=max(a,b,c)endl;coutmax(a,b)=max(a,b)endl;return 0;int max(int x,int y,int z)if(xy) x=y;if(xz) x=z;return x;int max(int x,int y)if(xy) x=y;return x;形参类型不同形参类型不同int max(int a, int b);double max(double a, double b);形参个数不同形参个数不同int max(
11、int x, int y,int z);int max(int x, int y);函数重载的类别函数重载的类别思考:思考:判断下列哪些组的函数构成重载函数,判断下列哪些组的函数构成重载函数,那些不构成重载函数。那些不构成重载函数。 不能以形参名不能以形参名来区分重载函数来区分重载函数 不能以返回值不能以返回值来区分重载函数来区分重载函数int add(int x, int y);float add(float a, float b);int add(int x, int y);int add(int a, int b);int add(int x, int y);void add(int x, int y);int add(int x, int y) return x+y; float add(float x, float y); return x-y; 形参类型不同,形参类型不同,构成重载函数构成重载函数 形参类型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 伤寒性心肌炎的临床护理
- 白大衣高血压的临床护理
- 2025生姜购销合同范本
- 脾脏外伤的临床护理
- 初中八年级数学教学设计用三边关系判定三角形全等
- 2025跨国酒店厨师雇佣合同
- 2025物业公司聘用合同书
- 2025年教师招聘之中学教师招聘基础试题库和答案要点
- 提供新质生产力还是注入新质生产
- 恶性脑膜瘤的临床护理
- (二模)2025年深圳市高三年级第二次调研考试历史试卷(含标准答案)
- 广西《疼痛综合评估规范》(材料)
- 2025年山东省淄博市张店区中考一模历史试题(含答案)
- 2025年内蒙古中考一模英语试题(原卷版+解析版)
- 美容师考试与法律法规相关知识及试题答案
- 推动研究生教育高质量发展方案
- 2025-2030中国药用活性炭行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2031年中国竹鼠养殖及深加工行业投资研究分析及发展前景预测报告
- 超星尔雅学习通《国际经济学(中国人民大学)》2025章节测试附答案
- 第13课 辽宋夏金元时期的对外交流 教案2024-2025学年七年级历史下册新课标
- 环境监测作业指导书
评论
0/150
提交评论