【C++】函数名重载

C语言没有函数名重载,C++有函数名重载。

函数名相同,函数参数列表不同,称为函数名重载。函数参数列表不同包括:

1)参数个数不同;

2)参数类型不同;

#include "stdio.h"

double find_max(double a, double b, double c)
{
    double max = a;
    if(max < b)
    {
        max = b;
    }
    else if(max < c)
    {
        max = c;
    }
    return max;
}

int main()
{
    double a = find_max(1.1, 0.2, 3.3);
    printf("%f", a);

    return 0;
}

/*
//run out:
3.3000
*/

函数匹配步骤:

1)先根据函数名查找

找到一个或多个同名函数(如果一个也没有,就会编译报错)

2)按”类型“+”个数“匹配

第一种情况:找到一个完全匹配的函数,则调用该函数;

第二种情况:没有找到完全匹配的函数,这时跳到第三步模糊匹配。

3)模糊匹配

这种情况比较复杂。(但一定是参数个数相同)

模糊匹配实例:2个整数值比大小,返回大的那个值。

#include "stdio.h"

double find_max(double a, double b, double c)
{
    double max = a;
    if(max < b)
    {
        max = b;
    }
    else if(max < c)
    {
        max = c;
    }
    return max;
}

double find_max(double a, double b)
{
    double max = a;
    if(max < b)
    {
        max = b;
    }
    return max;
}

int main()
{
    int a = 1;
    int b = 2;
    double result = find_max(a, b);
    printf("%f", result);

    return 0;
}

/*
//run out:
2.000000
*/

从上面的实例中可以看出,find_max并没有找到完全匹配的函数,这时先比较参数个数,相同的作为候选,然后从候选中查看传入的a,b能否从int转成double,如果可以,那么就使用该函数。否则就会编译报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值