函数重载
- 重载
- 使用规则
重载
函数重载也是CPP相较于C的一个优化内容。
在C中我们都知道函数名不能重名
当然这个错误对于我还有类似我这种只学过C的人来说,这个错误是显得多么理所当然。
但是在Cpp中,则对这个功能进行了优化
看到这就有人问了,那函数名既然重名了
那编译器在调用函数的时候是怎么进行区分的?
因为Cpp中,对函数名进行了修饰。
老祖宗定义了cpp函数名要被修饰,但修饰方式取决于编译器,比如在linux中
就上面的两个add函数
-Zaddii
-Zadddd
看到这两个有什么规律了吗?
没错,-Z是前缀,add是函数名,而后面的ii和dd是函数的参数类型
就是说cpp对函数名的修饰规则是对参数进行区分。
使用规则
1:函数名的参数类型完全或部分不一样
2:函数名参数类型一样,但顺序不同
int add(int x,double y)
{
return x+y;
}
double add(double x, int y)
{
return x + y;
}
3:函数重载与函数的返回类型无关,只取决于函数参数类型
int add(int x,double y)
{
return x+y;
}
double add(double x, int y)
{
return x + y;
}