函数重载
函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题
我们可以来简单举个例子:
我们在来看一下代码:这是不是函数重载:
可以肯定的是这是函数重载,但是如果无参调用是,会在这里发生了二义性(产生歧义)
对于函数重载的产生,我们先在这个地方简单略提一下:
- 为什么C++支持函数重载,而C语言不支持函数重载呢 ?
对于C语言不支持函数重载我们是可以很好理解的(在编译链接过程中,通过符号表找到函数名和函数地址),同名函数C语言是区分不了的。
而在C++中,可以去进行区分。C++是通过函数修饰规则来区分,只要参数不同,修饰出来的名字就不一样,就支持了重载 。
但是在调用函数的时候我们并不知道调函数的哪个返回值,就是调用时的二义性,无法区分,调用时不指定返回值类型。所以对于C++的函数重载而言,函数返回值不同并不能构成函数重载,不是函数名修饰规则