1.函数的重载允许函数的名称相同,但必须在同一个作用域下,且函数的参数要么类型不同,要么个数不同,要么顺序不同(顺序不同指的是数据类型的顺序不同)
2.无法重载仅仅按照返回值类型来区分的函数
void fun(int &a);
void fun(const int &a);
这两个函数属于类型不同,也可以重载
调用上面的函数需要传变量:
fun(a);
调用下面的函数需要传常量
fun(10);
const int &a = 10;是合法的,编译器会创建一个临时的数据,然后让a指向临时的空间
int &a = 10;是不合法的
函数重载与默认函数
void fun(int a, int m = 10);
void fun(int a);
此时fun(10)两个函数都可以被调用,因此出错,需要避免这种情况