C语言中:不能进行函数重载
C++中:可以进行函数重载
这与函数符号生成规则有关:
C:只和函数名称有关
C++ :与函数原型有关
函数重载
1.函数返回值类型不同 不够成重载 因为函数调用时会产生二义性
2.函数名称不同 不够成重载
3.形参列表
1)形参类型不同 构成
2)形参个数不同 构成
3)形参顺序不同 构成
函数重载三要素:1.同名2.不同参3.同作用域(源于就近原则)
重载决议过程:精确匹配==>隐式转换==>强制转换
int func(int a = 0,int b = 2)
{
return a+b;
}
int main()
{
char a = 'a',b = 'b';
func(a,b);
//精确匹配不成功,会尝试隐式转换去匹配
}