- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++第2讲 为什么使用函数 函数的使用过程 函数调用堆栈 内联函数 默认实参 函数重载 函数模板 C++第2讲-为什么使用函数 1、分而治之 将复杂的问题变成系列简单的问题 2、软件复用 同一代码可以,可在其他地方使用。 3、避免重复代码 需时写上函数名可以,从而使程序易于调试 C++第2讲 为什么使用函数 函数的使用过程 函数调用堆栈 内联函数 默认实参 函数重载 函数模板 C++第2讲-函数调用过程 main()函数相当于boss老板, 老板叫某个员工worker去干件事,同时给worker基本条件,如基本材料或设计图纸。 员工根据基本材料或设计图纸,去完成某件事,完事向老板汇报,事情办得如何。 至于员工办事的细节,老板不必知道。 当然员工也可以调用其他员工。 C++第2讲 为什么使用函数 函数的使用过程 函数调用堆栈 内联函数 默认实参 函数重载 函数模板 C++第2讲-函数调用堆栈 C++第2讲 为什么使用函数 函数的使用过程 函数调用堆栈 内联函数 默认实参 函数重载 函数模板 C++第2讲-函数调用堆栈 当老板执行到d=root(a,b,c)时,将此条语句在内存的地址R1保存到堆栈中,同时将a,b,c的值保存起来, 跳转到root()函数所在位置,执行该函数的首条语句。 C++第2讲-函数调用堆栈 当执行到“d=delta(a,b,c);”时,将此时内存地址R2保存到栈中,将a,b,c的值保存到栈中, 跳转到delta()函数所在位置,执行其首条语句。 C++第2讲-函数调用堆栈 当将判别式的平方求出来后, 从该栈顶取出R2值,执行“d=delta(a,b,c);”的后一条语句,即“if (d=0){”。 开始求平方根 C++第2讲-函数调用堆栈 求出平方根后, 从该栈顶取出R1值,执行“d=root(a,b,c);”的后一条语句,即“cout判别式的平方根:dendl;”,并一直执行到最后。 C++第2讲-内联函数 函数调用因为出入栈,增加执行时间 被执行函数的代码复制到调用处,每处有副本 特别适合于代码很短的函数。 C++第2讲-默认实参 函数原型中给参数一个默认值, 在调用该函数时,这些参数可以不给值。 C++第2讲-函数重载 默认实参是指调用函数时所给实参少于形参数 函数名称相同,只参数有所不同,如一个为整数,另一个为实数,第三个为char, 函数功能相同或相似,可不同,但是相似或相同。 编译器在检查函数时,根据调用给出的参数个数,参数数据类型、参数类型的顺序来选择的函数。 C++第2讲-函数重载 C++第2讲-函数模板 重载的函数之间,只要函数名相同,其他参数的个数、类型、参数的先后顺序不同。 如果参数的个数不变,参数的次序不变,功能相同的,只需要写一个通用函数 编译器会根据调用函数所使用的各参数类型,决定生成哪个版本的函数,此方法称为“函数模板”。 C语言中宏定义define可实现,但编译器并不对宏定义进行类型检测。 在预编译时直接将其展开,易错,考试点,也是广大学生的痛点,C++解决了这个痛点。 如前面的例题中,除第4个重载函数是求数的2倍,也前3个求数的都是求平方,因此可以写成函数模板,让编译器给我们重写函数吧。 C++第2讲-函数模板 C++第2讲-头文件 C++第2讲-头文件 * 最好将接着几张幻灯片不播放,只将栈图画在黑板上,那些解释的话直接讲出来 * 最好将接着几张幻灯片不播放,只将栈图画在黑板上,那些解释的话直接讲出来
您可能关注的文档
- 电子商务物流管理:第3章 电子商务物流市场及物流模式.ppt
- 电子商务物流管理:第4章 采购与库存控制.ppt
- 电子商务物流管理:第7章 电子商务物流服务与物流成本管理.ppt
- 《深入理解计算机系统》基础知识——汇编控制执行流程.ppt
- C++程序设计:第1讲 C++ vs C.ppt
- C++程序设计:第2讲 为什么使用函数.ppt
- C++程序设计:第8讲_类之二.ppt
- C++程序设计:第10讲文件.ppt
- C++程序设计:第八讲_类之二.ppt
- C++程序设计:第十讲文件.ppt
- C++程序设计:第一讲 输入输出、过程控制.ppt
- 财务管理学:第10章 流动负债.ppt
- 操作系统教学课件:Chapter 1 Introduction.ppt
- 操作系统教学课件:Chapter 2 Computer-System Structures.ppt
- 操作系统教学课件:Chapter 3 Operating-System Structures.ppt
- 操作系统教学课件:Chapter 4 Processes进程.ppt
- 操作系统教学课件:Chapter 5 Thread.ppt
- 操作系统教学课件:Chapter 6 CPU的调度.ppt
- 操作系统教学课件:Chapter 7 Process Synchronization.ppt
文档评论(0)