- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象程序设计实践 第4章 函数 本课主要内容 函数的一般形式 使用标准库中的函数 函数的调用、参数传递和返回值 变量的作用域和生存期 其它 内联函数 函数重载 函数缺省参数 函数模板 递归调用 编程示例 1函数的一般形式 1.1什么是函数 函数是C++中的独立功能块。 每个函数完成一个独立的功能。 把独立的功能封装起来就是函数的目的 复杂的任务求解通常都要分解为更容易求解的子任务,子任务还可以继续分解直至最小的功能单元,每个最小的功能单元就是一个函数 函数实际上就是一个有名字的一个语句序列。 C++程序由函数组成 一个C++程序至少有一个函数:主函数main() 1.2 函数的作用 函数的作用 可以将求解复杂问题的计算逻辑进行分解 使程序代码更清楚。每个分解的子任务可以给一个明确的名称 封装的函数可以在程序代码的不同部分多次重用 更容易进行测试 1.3函数定义的格式 返回值类型可以是任何合法的类型,包括基本类型和用户自定义的扩展类型。如果不希望函数调用返回一个值,就把类型设置为void。 函数名是一个identifier。 参数表 列出函数调用时传递给函数的参数 参数称为parameter,也称为formal argument(形式参数,形参) 每个参数的格式为para_type para_name para_type是参数类型 para_name是参数名称 参数之间用逗号分隔,参数表可以为空。 1.3函数定义的格式 function-name( parameter-list ) 称为函数签名(signature) return_type function-name( parameter-list ) 称为函数头 大括号包围称为函数体(function body)。 函数体中通过return语句返回,唯一的例外的main()函数。 1.4函数声明 为什么要函数声明 C++要求所有名称在使用前必须声明。即编译器要知道有这个名字,才能使用这个名字 因此,如果在函数定义前想使用这个函数,就必须先声明这个函数 函数声明的格式 函数声明也称为函数原型(function prototype) 1.4函数声明 函数参数检查 有了函数声明以后,编译器就可以根据函数声明检查函数调用时传递的参数个数与数据类型是否正确。 如果参数个数错误,则编译器会报错。 如果传递的参数类型不正确,又无法进行合适的隐式数据类型转换,编译器会报错。 如果能进行转换,则在程序运行时,函数调用发生的时候,对传递的参数进行数据类型转换,类型转换的原则与前面课程讲的赋值时的类型转换相同。 如果函数声明和函数定义不一致会怎么样? 编译器在链接过程中会报错,说找不到这个函数。 2使用标准库中的函数 C++语言本身只定义了语法规则,所有常用的实际功能都是通过规定的标准库实现的 C标准库定义了常见的输入输出,字符处理,数值函数等功能 C++标准库则基于泛型编程和模板定义了常见的数据结构和算法等内容 2使用标准库中的函数 使用标准库中定义的函数需要包含相应的头文件。这些头文件中列写了这些标准函数的函数原型。 例如:使用标准的输入输出流 #include iostream 使用数值函数如fabs()、sqrt()等 #include math.h 使用C++标准库定义的功能还要用using指令包含标准库的名字空间std using namespace std; 2使用标准库中的函数 C标准库的头文件有扩展名.h C++标准库的头文件没有扩展名。 C标准库的函数不在名字空间std中,为了将这些函数包含到std中 在C++程序中,应使用相应修改过的头文件,如math.h对应的C++头文件是cmath。 一般规则是去掉扩展名.h,在前面加一个c。 3函数的调用、参数传递与返回值 3.1函数调用 3.2函数调用的过程 函数调用的栈结构 3.2函数调用的过程 3.2函数调用的过程 3.3参数传递 函数体内定义的变量称为局部变量 局部变量保存在栈上 函数调用的时候进栈 函数返回的时候出栈就消失了。 局部变量的生存期就是函数运行的时间 函数参数实际上就是局部变量 发生函数调用时,上一级函数将实参的值复制给形参,这个过程称为参数传递 把实参的值复制给形参的过程叫值传递 (pass by value) 3.4返回值 3.5值传递对编程的影响 4变量的作用域、生存期 4.1作用域 局部变量 在函数体内声明的变量就是一个局部变量。这个变量的作用域在这个函数体内。 作用域,是指这个名称在这个范围内可以使用 扩展:一个语句块内声明的变量是一个局部变量,它的作用域在这个语句块内 4.1作用域 作用域 C++有5种作用域 文件作用域(
您可能关注的文档
最近下载
- 2025年初级会计职称《初级会计实务》精讲课件 第一章 概述.pdf
- 锅炉安装施工通用工艺规程.pdf VIP
- 医院消毒供应室规范化管理.pptx VIP
- DB4102_T 045-2024 开农85夏直播花生栽培技术规程.docx VIP
- TCAMET - 城市轨道交通全自动运行系统第5部分:核心设备产品规范.pdf VIP
- 混凝土道路施工方法.docx VIP
- 2024网民网络安全感满意度调查—商用密码专题调查报告-密码科技国家工程研究中心.pdf
- 某公司采购工作手册.doc VIP
- 现代幼儿教师实用英语口语 (12)句子教学.pptx VIP
- 光伏项目经济指标工程概算造价表.xlsx VIP
文档评论(0)