C++ 函数重载

C++ 中的函数重载是一种重要的特性,它允许在同一个作用域内定义多个同名但参数列表不同的函数。

函数重载的主要目的是为了让程序能够更自然、更灵活地处理不同类型或数量的参数。

比如说下面这段代码,在C里面就不可以,但是在C++里面确可以

int print(int a)
{
    printf("呵呵\n");
    return a;
}

double print(double a)
{
    printf("hehe\n");
    return a;
}
int main(void) {
    int a = 3;
    double b = 4;
    print(a);
    print(b);
    return 0;
}

但是产生这样的原因是什么呢?

是因为代码在编译的时候(汇编语言)C语言选择的是函数名,而C++选择的函数名+形参类型

这就是C++的函数名修饰规则!

那么函数重载和什么有关呢?

和形参类型和类型顺序以及参数个数

和形参名字没有关系

和返回值没有关系

那么再思考一下,如果C++的汇编把返回值加入到修饰规则

那么函数重载和返回值有关系吗?

答案依然是没有关系啊,因为.c的文件是只要在链接才执行,这个时候你只能通过函数地址,找到在.h文件的函数声明,这无法判断返回值!

但是思考一下
有些地方虽然函数可以重载,但是程序运行时会出现歧义,这是我们需要注意的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值