函数重载是函数的一种特殊情况,c++允许在同一作用域中声明几个功能类似的函数
构成函数重载的条件是:
1、作用域必须相同
2、函数名必须相同
3、参数列表不同(参**数个数不同,参数类型不同,参数类型次序不同)
返回值可同或不同
(注:但是只有返回值不同其他全都相同不能构成函数重载)
可以看到只有返回值不同时不能构成函数重载
调用函数时必须要给出对应的参数才能调用到相应的函数
为什么C++支持函数重载而C语言不支持函数重载呢?
这是因为成c++经过编译器编译之后会给函数重新修饰一个函数名(通过返回值,参数类型,参数类型顺序生成) 而C语言则生成一个_函数名。例如:
int Add(int ,int)这个函数 vs2013环境下
c++风格返回了 ?Add@@YAHHH@Z
而C风格下返回了 _Add
所以C语言不支持函数重载,因为编译器不知道要调用哪个函数