22)函数重载

Posted 小油菜123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)要想函数重载,就别带有默认参数,要想带默认参数,就别函数重载

     (因为,当你少写一个参数时,系统不知道,你是函数重载,还是嗲用带有默认参数的函数)

 

以上是关于22)函数重载的主要内容,如果未能解决你的问题,请参考以下文章

C++深度剖析学习总结 22 类中的函数重载

C/C++编程笔记:C++中的函数重载和浮动

调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段

对Java方法方法重载的理解

JavaSE 方法的使用

Java基础之方法的调用重载以及简单的递归