C++学习笔记:带默认参数的函数解析

需积分: 48 1 下载量 160 浏览量 更新于2024-08-19 收藏 17.46MB PPT 举报
"C++学习笔记——带默认参数的函数" 在C++编程中,函数是实现特定功能的代码块,可以被多次调用。本节我们将探讨带默认参数的函数这一特性,这是C++相对于C的一个重要区别。 在C语言中,函数的形参没有默认值,这意味着每次调用函数时,必须提供所有形参的实际值(实参)。然而,在C++中,我们可以为函数的形参指定默认值,这样在调用函数时,如果某个实参未被明确提供,那么将使用形参的默认值。这增加了代码的灵活性和可读性。 例如,定义一个函数`addNumbers(int a, int b = 0)`,这里`b`参数有了默认值0。当调用`addNumbers(5)`时,由于没有提供第二个参数,编译器会自动使用默认值0,相当于调用了`addNumbers(5, 0)`。 形参与实参的个数在C和C++中也有不同规定。在C++中,函数的实参数量可以少于形参数量,只要对应位置的形参有默认值。而C语言则要求实参数量必须与形参数量完全匹配,否则会导致编译错误。 C++是一种多范式编程语言,它不仅继承了C语言的底层控制能力,还引入了数据抽象、面向对象编程和泛型编程等高级特性。C++之父Bjarne Stroustrup博士在1979年开始开发C++,最初命名为"C with Classes",后来逐渐演变成现在的C++,并在1998年确立了ANSI/ISO C++标准。 C++的设计目标是成为一个高效的、灵活的和可扩展的语言,适合系统编程和大型软件开发。它支持类、封装、继承、多态等面向对象特性,同时提供了模板和泛型编程,使得代码更加可重用和高效。C++的应用领域广泛,包括嵌入式系统、游戏开发、网络编程、系统编程等,其在行业中的地位显著,是许多关键领域软件开发的首选语言。 在学习C++的过程中,理解并熟练掌握带默认参数的函数以及C++的其他高级特性是非常重要的,这将有助于编写出更简洁、更强大的代码。同时,通过阅读经典的C++教材和参考书籍,如《The C++ Programming Language》等,可以深入理解C++的本质和最佳实践。在实际学习过程中,定期做作业,包括选择题、填空题和编程题,以及通过在线平台提交,可以帮助巩固所学知识,并提升编程技能。

15:23:44.436 -> --------------- CUT HERE FOR EXCEPTION DECODER --------------- 15:23:44.532 -> 15:23:44.532 -> Soft WDT reset 15:23:44.532 -> 15:23:44.532 -> Exception (4): 15:23:44.532 -> epc1=0x40106871 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000 15:23:44.628 -> 15:23:44.628 -> >>>stack>>> 15:23:44.628 -> 15:23:44.628 -> ctx: cont 15:23:44.628 -> sp: 3ffffd30 end: 3fffffd0 offset: 0160 15:23:44.676 -> 3ffffe90: 60000314 00000006 00000044 40202e23 15:23:44.724 -> 3ffffea0: 00000002 3ffee608 3ffee774 40202f11 15:23:44.820 -> 3ffffeb0: 00000048 3ffee774 00000001 3ffee57d 15:23:44.820 -> 3ffffec0: 60000314 00000001 3ffee774 00000002 15:23:44.916 -> 3ffffed0: 3ffef5c4 3ffee556 00000002 402013c0 15:23:44.965 -> 3ffffee0: 00000001 00000048 00000000 402013f4 15:23:45.012 -> 3ffffef0: 3ffee774 3ffee57c 00000002 402017e4 15:23:45.060 -> 3fffff00: 00000000 00000001 3ffee574 3ffef5c4 15:23:45.108 -> 3fffff10: 00000002 00000002 00000000 40201860 15:23:45.156 -> 3fffff20: 3ffee556 00000001 00000001 00000000 15:23:45.204 -> 3fffff30: 00000000 00000003 3ffef5c4 3ffee72c 15:23:45.252 -> 3fffff40: 3fffdad0 3ffee556 3ffee548 402015bc 15:23:45.300 -> 3fffff50: 60000314 00000000 3ffee548 402015e4 15:23:45.396 -> 3fffff60: 3fffdad0 00000000 3ffee548 40201692 15:23:45.396 -> 3fffff70: 00000001 00000048 3ffee548 402010a3 15:23:45.492 -> 3fffff80: 00000000 feefeffe 3ffee774 3ffee72c 15:23:45.492 -> 3fffff90: 3fffdad0 00000000 3ffee574 4020143c 15:23:45.588 -> 3fffffa0: 3ffee55c 00000000 3ffef5c4 3ffee72c 15:23:45.636 -> 3fffffb0: 3fffdad0 00000000 3ffee700 40202300 15:23:45.685 -> 3fffffc0: feefeffe feefeffe 3fffdab0 40100eb1 15:23:45.733 -> <<<stack<<< 15:23:45.733 -> 15:23:45.733 -> --------------- CUT HERE FOR EXCEPTION DECODER --------------- 15:23:45.828 -> H!⸮⸮L^⸮ ⸮⸮@H⸮JG⸮⸮⸮E

2023-07-14 上传