还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
过程封装函数--函数是组织代码的有效方式它将相关的代码块封装在一起,提高代码可读性和可维护性什么是过程封装?将代码模块化隐藏实现细节
1.
2.12将一段完成特定功能的代码块通过封装,将代码的内部实现封装成一个独立的单元,方便细节隐藏起来,外部代码只需重复使用和维护要调用封装好的接口即可提高代码复用率降低代码复杂度
3.
4.34将代码封装成函数,可以方便通过将代码模块化,可以将复地进行代码复用,减少代码重杂的功能分解成多个简单的函复编写,提高开发效率数,降低代码的复杂度,提高代码的可读性和可维护性过程封装的目的提高代码可读性提高代码复用性降低代码复杂度提高代码的可靠性过程封装可以将复杂的操作简封装后的函数可以被多次调用将复杂的程序分解成一个个简封装后的函数经过测试和验证化为一个函数调用,提高代码,避免重复编写相同的代码,单的函数,可以降低代码的复,可以确保代码的可靠性和稳的可读性和可维护性提高代码复用率杂度,使程序更容易理解和维定性护封装可以带来哪些好处?代码复用性代码可读性代码可维护性代码安全性通过封装,我们可以将常用的封装可以将复杂的功能代码封封装后的代码易于修改和维护封装可以隐藏内部实现细节,代码逻辑封装成函数,方便在装成一个个独立的函数,使得,当需要修改某个功能时,只只暴露必要的接口,防止外部其他地方重复使用,减少代码代码结构更加清晰,易于理解需要修改对应的函数即可,不代码对内部数据进行非法访问重复编写,提高开发效率和维护会影响其他代码,提高代码安全性什么是函数?代码块函数是一段可重复使用的代码,它执行特定任务构建模块函数就像乐高积木,可以组合成更复杂的功能计算工具函数可以接收输入,进行计算或操作,并返回结果函数的基本构成函数名参数列表每个函数都需要一个唯一的名称参数是函数执行时从调用者接收,用于标识和调用它函数名应的数据参数列表定义函数接受遵循命名规范,以提高代码的可哪些类型的参数以及参数的顺序读性函数体返回值函数体包含函数的实际代码,用函数执行完后,可以返回一个值于执行特定的操作并返回结果给调用者返回值类型应与函数体中return语句返回的值类型一致如何定义一个函数函数定义语法使用关键字`def`定义函数,后面紧跟函数名和圆括号,括号内是参数列表函数体函数体包含要执行的代码块,用缩进表示代码块的范围返回值函数可以使用`return`语句返回一个值,如果没有返回值,默认返回`None`函数的命名规则见名知意函数名应清晰地反映函数的功能和作用,方便阅读和理解代码命名规范使用驼峰命名法或下划线命名法,提高代码一致性,方便团队协作大小写区分函数名通常使用小写字母,避免与变量名混淆函数的参数参数的作用参数的类型函数的参数就像给函数传递信息参数可以是各种类型,如整数、可以根据不同的参数执行不同浮点数、字符串、数组、结构体的操作等参数的个数函数可以没有参数,也可以有多个参数,取决于函数的功能参数的传递机制调用函数1传递参数函数接收2参数传递执行操作3使用参数参数传递是调用函数时将实参传递给形参的过程函数接收到的参数值会根据传递机制进行处理,以便在函数内部使用例如,值传递会复制参数值,而引用传递则直接使用实参地址值传递和引用传递值传递引用传递12函数调用时,将实参的值复制函数调用时,将实参的地址传到形参,形参的改变不会影响递给形参,形参的改变会影响实参实参区别应用场景34值传递传递的是副本,引用传值传递用于不希望改变实参,递传递的是原值引用传递用于需要修改实参函数的返回值返回类型返回语句函数的返回值类型决定了函数返回的值的使用`return`语句将计算结果返回给调类型,例如int、double或字符串等用函数,该语句必须位于函数体中返回语句可以带参数,表示返回该参数的返回值类型在函数定义时指定,并与函数值,如果没有参数,则返回一个默认值调用时返回的值类型匹配函数的调用函数定义只是创建了函数的代码块,而函数的调用才是真正执行函数内部代码的关键函数名1使用函数名来标识要调用的函数参数2将实际值传递给函数的形参返回值3接收函数执行的结果调用函数时,程序会跳转到函数内部执行代码函数执行完毕后,程序会返回到调用函数的地方,并继续执行后续代码函数的作用域函数定义所在区域函数调用所在区域函数的作用域是指函数可以访问的变量范围函数内的变量在函数函数调用会创建一个新的作用域,在这个作用域中可以访问函数的执行结束后会被销毁参数和局部变量局部变量和全局变量局部变量全局变量在函数内部定义的变量,只能在在函数外部定义的变量,可以在该函数内部访问整个程序中访问作用域生命周期局部变量的作用域仅限于定义它局部变量在函数被调用时创建,的函数,全局变量的作用域是整函数结束时销毁,全局变量在程个程序序启动时创建,程序结束时销毁变量的生存期定义阶段作用域结束变量在函数或代码块中被定义时,其生存期就开始了这意味着当定义变量的函数或代码块执行结束时,该变量的生存期也随之,变量在内存中分配了空间,可以被使用结束其内存空间被释放,变量不再有效递归函数函数调用自身分而治之自相似结构递归函数可以调用自身,实现重复执行递归函数通过分解问题,将复杂问题分解为递归函数可以产生自相似结构,例如树形结更小的子问题构递归函数的优缺点简洁性代码复用
1.
2.12递归函数可以将复杂问题分解递归函数可以重复调用自身,成更小的子问题,代码简洁易减少代码重复,提高代码复用懂率效率问题可读性问题
3.
4.34递归函数可能导致栈溢出,效递归函数的逻辑可能难以理解率不如循环结构,可读性不如循环结构函数的重载相同函数名,不同参数编译器自动识别提高代码可读性函数重载是指在同一作用域内,多个函数具编译器会根据函数调用时的参数类型和数量函数重载可以让代码更简洁易懂,减少重复有相同函数名,但参数列表不同自动识别并调用相应的函数代码,提高代码的可维护性内联函数定义使用内联函数是一种特殊的函数,它在编译时将函数体直接插入到调使用inline关键字修饰函数定义,即可将其声明为内联函数例用函数的地方,从而避免了函数调用的开销这可以提高程序的如inline intaddint a,int b{return a+b;}效率函数指针函数指针定义指针类型函数指针是一个指向函数的指针函数指针的类型由函数的返回值变量类型和参数类型决定调用函数函数指针的优点通过函数指针可以间接调用函数灵活地调用函数,提高代码可读,指针指向的函数会被执行性和可维护性,便于使用回调函数函数指针的应用场景回调函数事件处理排序算法数据结构操作回调函数允许将函数作为参数通过使用函数指针,可以将不函数指针可以用来实现通用排函数指针可以用于实现各种数传递给另一个函数,以便在特同的函数与不同的事件关联起序算法,允许用户指定自定义据结构操作,例如插入、删除定事件发生时执行来,从而实现灵活的事件处理比较函数来定义排序规则、查找等,提高代码的可读性机制和可维护性标准库中的常用函数C++算法字符串C++标准库提供了丰富的算法,例如排序、搜索C++标准库提供了字符串操作函数,例如字符串、查找和转换算法,可以帮助我们高效地处理比较、查找、替换和分割数据容器输入输出/C++标准库提供了各种容器类型,例如数组、列C++标准库提供了输入/输出流操作,例如控制表、集合和映射,可以用于存储和管理数据台输入和输出、文件读写如何有效使用函数选择合适的函数函数参数的合理性
1.
2.12根据具体问题选择功能明确、易于理解参数类型、数量、顺序需符合函数功能的函数要求返回值的设计函数的注释
3.
4.34返回值应清晰地反映函数的执行结果,清晰简洁的注释,解释函数功能、参数避免歧义、返回值等函数设计的原则单一职责可读性每个函数应该专注于完成一项特定的任务,避使用清晰、简洁的命名和注释,使代码易于理免将多个不相关的功能混杂在一起解和维护模块化效率将代码分解成独立的函数,以便于复用和维护选择合适的算法和数据结构,以提高代码的执行效率函数库的设计模块化命名空间将相关的函数分组到不同的库中使用命名空间避免函数名冲突,,提高代码的可维护性和可重用使库的组织更加清晰性文档化测试为每个库提供详细的文档,方便对库进行充分的测试,确保其功其他开发者使用和理解能正常,提高代码质量函数的测试和调试单元测试调试工具12编写测试用例,验证函数功能使用调试器,单步执行代码,的正确性查看变量值和函数调用栈日志记录代码覆盖率34在代码中添加日志,记录程序测试代码覆盖率,确保函数被运行过程,方便排查错误充分测试课堂练习函数编写练习1编写一个函数,实现两个整数的加法操作,并返回结果函数调用练习2编写一个程序,调用上述加法函数,并输出结果函数调试练习3编写一个函数,实现两个整数的减法操作,并返回结果,然后进行调试,找出并解决代码中的错误本章小结过程封装函数过程封装是结构化程序设计的重要思想之一通过封装,将代码函数是代码模块化的核心,通过函数可以将一组操作封装起来,逻辑模块化,提高代码可读性、可维护性、可复用性方便调用和复用函数是C++中代码组织和管理的基础,学习函数是掌握C++的关键课后思考题本节课学习了函数的概念、定义、调用以及作用域等知识请思考函数在实际编程中的应用场景,并尝试用函数来解决一些实际问题例如,可以尝试用函数来实现以下功能•计算两个数的和•判断一个数是否为素数•求解一元二次方程通过实际的编程练习,可以加深对函数的理解和应用。
个人认证
优秀文档
获得点赞 0