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)要想函数重载,就别带有默认参数,要想带默认参数,就别函数重载

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

 

posted @ 2018-01-02 21:27  小油菜1  阅读(151)  评论(0编辑  收藏  举报