C++程序设计:函数重载详解

需积分: 10 6 下载量 44 浏览量 更新于2024-08-23 收藏 8.66MB PPT 举报
"函数的重载-C++程序设计(谭浩强完整版)" 在C++编程语言中,函数重载(Function Overloading)是一项重要的特性,它允许在同一作用域内定义多个同名函数,但这些函数的参数列表必须有所不同。这通常通过改变参数的数量、类型或者参数的顺序来实现。在提供的代码示例中,`fun` 函数被重载了两次: 1. 第一个`fun`函数接受两个整数参数`int a`和`int b`,返回它们的和。 ```cpp int fun(int a, int b) { return a + b; } ``` 2. 第二个`fun`函数接受一个整数参数`int a`,返回它的平方。 ```cpp int fun(int a) { return a * a; } ``` 在`main`函数中,`cout`分别调用了这两个重载的`fun`函数。第一次调用`fun(3, 5)`使用了两个整数参数,因此调用了第一个定义的`fun`函数,输出结果是8。第二次调用`fun(5)`只有一个参数,所以调用了第二个定义的`fun`函数,输出结果是25,即5的平方。 C++的函数重载机制依赖于编译器的类型匹配能力。编译器会根据调用函数时提供的实参类型和数量来选择合适的函数版本进行调用,这个过程称为重载解析(Overload Resolution)。在本例中,编译器能够正确识别`main`函数中的两行调用,分别对应不同的`fun`函数。 C++的发展历程是建立在C语言的基础上的,C++由Bjarne Stroustrup在20世纪80年代初期创建,旨在提供一种支持面向对象编程(OOP)的增强版C语言。C++不仅保留了C语言的大部分特点,如简洁、高效、可移植性好,还引入了类、对象、模板、异常处理、命名空间等高级特性,使得C++成为一种更强大、更全面的编程语言。 C语言的主要特点包括: 1. 结构化编程:C语言采用结构化编程方法,支持模块化开发,有助于代码的组织和管理。 2. 高级与低级语言特性结合:C语言拥有丰富的运算符,支持位操作,兼顾了高级语言的抽象和汇编语言的直接性。 3. 可移植性:C语言编写的程序可以在多种硬件平台上运行,只需要做少量或无需修改。 4. 灵活的语法:虽然这使得编程自由度较高,但也可能导致初学者在理解和调试程序时遇到困难。 C++则在此基础上增加了对面向对象编程的支持,通过类和对象的概念,以及继承、封装和多态性,使得代码更加模块化,易于维护和扩展。同时,C++还引入了模板(Template),使得函数和类可以泛型化,提高了代码的复用性。此外,异常处理(Exception Handling)机制为错误处理提供了更为优雅的方式。C++旨在提供一种既能高效执行,又能进行复杂软件开发的编程工具。