zoukankan      html  css  js  c++  java
  • 函数重载

    1.函数重载概念

    函数重载(Function Overload)

    用同一个函数名定义不同的函数

    当函数名和不同的参数搭配时函数的含义不同

    2 .函数重载的判断标准 

    函数重载至少满足下面的一个条件: 

    参数个数不同 

    参数类型不同 

    参数顺序不同 

    3 .函数返回值不是函数重载的判断标准 

    4 .编译器调用重载函数的准则 

        将所有同名函数作为候选者 

        尝试寻找可行的候选函数  

        精确匹配实参 

        通过默认参数能够匹配实参 

        通过默认类型转换匹配实参 

        匹配失败 

        最终寻找到的可行候选函数不唯一,则出现二义性,编译失败。 

        无法匹配所有候选者,函数未定义,编译失败。

    函数重载的注意事项

    重载函数在本质上是相互独立的不同函数(静态链编)

    重载函数的函数类型是不同的

    函数返回值不能作为函数重载的依据

    函数重载是由函数名和参数列表决定的。

    #include <iostream>
    using namespace std;
    
    void myPrint(int a)
    {
        cout<<"a="<<a<<endl;
    }
    
    void myPrint(const char *p)
    {
        //cout<<"p="<<p<<endl;
        printf("%s 
    ",p);
    }
    
    void myPrint(int a,int b)
    {
        cout<<"a="<<a<<endl;
        cout<<"b="<<b<<endl;
    }
    
    /*
    //返回值 不是 判断函数重载的标准
    int myPrint(int a,int b)
    {
        cout<<"a="<<a<<endl;
        cout<<"b="<<b<<endl;
    }
    */
    
    //1 当函数名和不同的参数搭配时函数的含义不同
    //2 函数重载的判断标准
    //参数个数不同
    //参数类型不同 
    //参数顺序不同
    
    //3 返回值 不是 判断函数重载的标准
    
    //4 重载函数的调用标准
    
    int main(void)
    {
        myPrint(1);
        myPrint("11122222333aaa");
        myPrint(1,2);
        
        return 0;
    }

    函数默认参数 和 函数重载 在一起  可能会产生二义性

    k//函数默认参数 和 函数重载 在一起
    void myfunc(int a,int b,int c=0)
    {
        cout<<"a:"<<a<<"b:"<<b<<"c:"<<c<<endl;
    }
    
    void myfunc(int a,int b)
    {
        cout<<"a:"<<a<<"b:"<<b<<endl;
    }
    
    void myfunc(int a)
    {
        cout<<"a:"<<a<<endl;
    }
    
    int main(void)
    {
        //myfunc(1,2); //函数调用时 会产生二义性
        myfunc(1);
        return 0;
    }

     

      

  • 相关阅读:
    linux rz -e
    (转载)总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法
    Searching the Web论文要点
    搜索提示(search suggest)文献阅读
    C++常用数据结构(对照python)
    FM,FFM,GBDT推导
    Ranking relevance in yahoo search (2016)论文阅读
    荀子劝学篇
    不要尝试去锯木屑
    3服务器Java虚拟机配置
  • 原文地址:https://www.cnblogs.com/Liu-Jing/p/9694004.html
Copyright © 2011-2022 走看看