前言
简单记录一下C++中函数重载相关知识,记录于此,方便自己查阅和回顾。
正文
函数重载(overload),就是在同一个作用域内函数名相同但参数个数或者参数类型不同的函数。
按照上面要求,下面的函数就重载了。
void add(int x, int y); void add(float x); double add(double x, double y);
下面是函数重载的条件
函数名相同
这个前提条件,函数名不同那就是不同的函数了。
参数个数不同
void add(int a) { } void add(in a , int b) { }
参数类型不同
void add(int a) { } void add(double a) { }
void add(double a, int b) { } void add(int a, double) { }
调用重载函数时,编译器会根据传入的实参与重载函数逐一匹配,根据匹配结果决定到底调用哪个函数。
不能让重载函数有二义性,比如下面:
int add(int x, int y = 1); void add(int x);
当调用时
int sum = add(1);
会提示
有多个重载函数实例与参数列表匹配
存在二义性,编译器没法判断用需要调用哪个函数,所以导致无法编译成功。
参考文章
© 版权声明