22)函数重载
1)定义:函数重载:规则:
(1)他们的作用域必须是一样的
(2)函数的名字一样
(3)参数个数不同,参数的类型不同,参数的顺序不一样,均可以构成重载
(4)返回值类型不同则不能构成重载
1 #include<iostream> 2 //如下面的两个函数,不是虫重载,而且有严重的错误,不可以这么写 3 int fun(int a) 4 { 5 printf("dkas"); 6 return 2; 7 } 8 char fun(int a) 9 { 10 printf("11111111"); 11 return 'a'; 12 } 13 int main() 14 { 15 fun(10,20); 16 printf("\n"); 17 fun(10,'a'); 18 19 return 0; 20 21 22 }
2)注意:如果要是函数重载的话,就不要默认参数,为了避免调用时出现函数冲突
3)函数重载涉及的函数调用规则:
如果能严格匹配,就直接调用这个严格匹配的,
如果没有完全匹配的,就调用隐式转换,
如果还是匹配不到,则调用失败。
4)
5)C++重载的底层实现
其实就是,在我们的编译器的 表格里面,函数的名字虽然我们看上去是一样的,但是实际上在表格中存的是不一样的。
5)要想函数重载,就别带有默认参数,要想带默认参数,就别函数重载
(因为,当你少写一个参数时,系统不知道,你是函数重载,还是嗲用带有默认参数的函数)