C++入门基础——函数重载

什么是函数重载

  在生活中我们也会遇到”函数重载“,你鼓起勇气捧起鲜花向你心仪已久的女神表白,你将花用双手递给女神,含情脉脉对女神说:“XXX,我喜欢上你了!!”,这时女神大呼流氓反手一个耳光就跑走了,周围围观的群众纷纷竖起大拇指直呼内行,而这时的你还不知道自己说错了什么话,会被女神直呼流氓。 

  生活中的“函数重载”就是一词多义,在C++中函数重载就是同一个函数名可以实现多个不同的功能

函数重载的概念:C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同(与函数的返回值无关),常用来处理实现功能类似数据类型不同的问题
   

函数重载时是如何确定应该调用哪个函数?

函数在编译阶段,编译器会根据传递的实参类型进行推演,根据推演的结果选择合适的调用函数

注意:若编译器推演完成后没有找到合适的调用函数,那么编译器会尝试对实参进行隐式类型转化

           1 转化完成后仍然没有合适的调用函数或不能进行隐式类型转化,则编译失败

           2 转化完成后找到合适的调用函数,编译成功

 

 

 

C语言中为什么不能支持函数重载?

  C语言不支持函数重载的原因时因为程序运行时在编译阶段对函数名修饰的问题

  所以由于不同修饰规则,在函数编译时C语言只能表示一个函数如_add就知道是add函数,C++同一个函数名却可以表示不同的函数,这也就是C语言不支持重载,而C++支持重载的原因

 

通过这里就理解了C语言没办法支持重载,因为同名函数没办法区分。而C++是通过函数修饰规则来区 分,只要参数不同,修饰出来的名字就不一样,就支持了重载。 另外也理解了,为什么函数重载要求参数不同!而跟返回值没关系

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值