- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数定义和调用格式课件
第五章 C++函数 函数定义和调用的格式 函数原形和头文件的作用 参数传递机制、函数重载 函数和变量的作用域 函数模板的设计方法 函数的定义 函数调用 函数原形与头文件 多文件应用系统 第一个文件:描述函数的头文件 第二个文件:定义函数的程序文件 第三个文件:调用函数的主程序文件 参数传递 可选参数 在说明一个函数时,可以为形式参数表中的最后若干个参数设定默认值,从而把这些参数设定为可选参数 在调用这个函数时,如果没有给出对应于可选参数的实参,系统就自动以设定的默认值作为实参传递给这个函数 在调用具有可选参数的函数时,被省略的只能是最后的连续的若干个可选参数(即不能间隔省略) 可选参数的说明格式如下: 类型修饰符 变量名=默认值(常量表达式) 可选参数应该在函数原形中说明 内联函数 内联函数:在一般函数定义前面加上保留字inline,该函数即被说明为内联函数,例:inline int add2(int n){return n+2;} 内联展开:程序执行时,C++有可能直接调用函数体代码来替代对函数的调用 函数说明:内联函数的说明也应放置在头文件中 函数重载与名字混成 函数重载:允许定义同名的函数,但重载的函数必须在参数的数量上或类型上与其他同名函数有所不同 重载函数的调用:如果调用时所用的参数与所定义的各种情况均不相同,则编译系统会选择与其兼容的最相似的那个函数,并完成必要的类型转换,如果找不到兼容的函数,则产生编译错误 名字混成:编译系统在处理重载函数时会形成不同的内部名称,这种方法称为名字混成 在重载函数时必须保证在逐个去掉可选参数后,仍然在参数个数上或类型上与同名函数有所不同 函数的作用域 全局作用域:不但在定义函数的文件中可以调用,而且在同一应用系统的其他程序文件中也可调用 文件作用域:说明为static的函数只能被同一文件中的函数调用,例:static long add(long a,long b){return a+b;} 全局变量 全局变量:定义于函数外部的变量称为全局变量 静态生存期:全局变量在应用程序运行的整个期间都有效,如果在定义时未初始化,则自动初始化为0 文件作用域:全局变量定义时使用static修饰,则只允许同一文件中的函数访问该变量 跨文件作用域:全局变量定义时未使用static修饰,则还允许同一系统的其他程序文件中的函数访问该变量 外部说明:extern int a 应用场合① 跨文件作用域的全局变量被其他程序文件中的函数访问② 变量的声明在函数声明之后,称之为“变量的原形” 局部变量 局部变量:定义于函数内部的变量 块作用域:局部变量只允许定义该变量的块中的语句访问,“块”一般指复合语句,复合语句中位于变量定义之前的语句也不能访问该变量 局部变量的存储类型:① 自动变量:其生存期从变量定义开始,到所在块运行结束时为止,用auto修饰或省略之② 寄存器变量:也是自动变量的一种,但它是存储于寄存器中的,只有适合于单个寄存器存放的变量才可声明为寄存器变量,用register修饰③ 静态变量:用static修饰的局部变量具有静态生存期,存在于应用程序的整个运行期间 函数模板(一) 函数模板:一系列相关函数的模型或样板,这些函数的原代码除了因所针对的数据类型不同而有所差异外,其基本结构相同。 定义格式:template 模板形参表函数定义 例: templateclass T // T被称之为虚拟类型 T Max(T x,T y) { return (xy? x:y); } 函数模板的实例化:编译系统根据每次调用的实在参数的情况生成适当的调用代码,并生成相应版本的函数定义,例:coutMax(3,5); int Max(int x,int y){return(xy? x:y);} 函数模板(二) 函数模板的强制实例化:在函数调用格式中插入模板的实参表,例:coutMaxint(3,5.0); 将生成如下实例:int Max(int x,int y){return(xy?x:y;)}//5.0为double型,强制转换为int型 若与模板的某个实例原形相同的函数定义已经存在,则函数定义优先 函数模板的形参表中可以有多个参数,例:templateclass T1,class T2T1 Max(T1 x,T2 y){return x(T1)y? x:(T1)y;}
您可能关注的文档
- 全面质量管理(ISO9000)课件.ppt
- 全面建设小康社会最根本要求和我国基本经济制度是课件.ppt
- 全程复习方略2016高考中图版生物大一轮复习必修1 第二单元细胞自我保障第一章细胞中蛋白质课件.ppt
- 全面品质管理信念在教育组织应用限制课件.ppt
- 八上unit6试卷讲评课件.ppt
- 全面预算管理和控制技巧课件.ppt
- 八上历史与社会复习提纲课件.ppt
- 全面质量管理内容与实话方法课件.ppt
- 八上历史第一单元 侵略和反抗 综合复习课件.ppt
- 全新版大学英语 Unit4课件.ppt
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)