> 文章列表 > 【短篇】函数重载

【短篇】函数重载

【短篇】函数重载

函数重载

  • 重载
  • 使用规则

重载

函数重载也是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;}