美文网首页
C++函数重载

C++函数重载

作者: 林聪色 | 来源:发表于2016-10-30 16:50 被阅读0次

    基本概念

    在C++中允许使用函数重载(函数多态)。简单来说函数重载类似于我们平时所说的多义词。既能够使用多个同名函数,只要他们拥有不同的特征标(指函数的参数列表,包括参数数目、类型和排列顺序)。通过函数重载可以用使用同一个函数名来实现多个功能。

    下面列举几种可以使用函数重载的情况
    eg0:

    void print(int x);
    void print(const int x);//可以重载
    void print(long x); //可以重载,因为参数类型不同
    void print(int x,char y);//可以重载,因为参数数目不同
    void print(char x,int y);//可以重载,因为参数顺序不同
    

    不能对函数进行重载的情况
    eg1:

    void print(int x);
    void print(int & x);//类型引用和原类型视为同一个特征标,因此不能对函数进行重载
    

    eg2:

    int print(int x);
    long print(int x);//返回类型不同,特征标相同,不能对函数进行重载
    

    编译器对函数原型的选择

    对于以下三个函数原型

    void print(short x);//函数1
    void print(long x);//函数2
    void print(int x,char y);//函数3
    

    使用重载函数时,编译器根据传递给函数的参数来决定调用哪个函数原型。

    print(1);//调用函数1
    print(long(2));//调用函数2
    print(3,'x');//调用函数3
    

    如果出现参数和所有函数原型都不匹配的情况,会在不引起混乱的情况下进行强制转换

    print(char 'x',char y);//调用函数3
    

    如果有多种转换方式对传入的参数可以使用,将会引起混乱,在这种情况下编译将报错

    print(char x);//错误,编译器无法判断将调用函数1还是函数2
    

    相关文章

      网友评论

          本文标题:C++函数重载

          本文链接:https://www.haomeiwen.com/subject/mfkuuttx.html