函数重载

1.函数重载

1)多态性

在程序中同一个符号或名字在不同的情况下具有不同的解释称之为多态性。

多态性有两种最基本的形式:1)编译时多态性;2)运行时多态性。

编译时多态性:在程序编译阶段可确定下来的多态性,主要通过重载机制实现,包括函数重载和运算符重载两大类。

运行时多态性:必须要等到程序动态运行时才可以确定的多态性,主要通过继承+动态绑定获得。

2)函数重载

重载机制:c++语言,中、,只要声明函数言行是形参的个数或者对应位置参数类型不同,两个或更多的函数就可以公用一个名字,在同一作用育种与许许多个函数使用同一个函数名。

编译程序根据实际参数个数与对应的数据类型,选择调用那个重载函数,因此重载函数必须在形式参数的个数上和类型上区分开来。(但是返回值类型不能作为区分重载函数的标准)

函数重载的二义性:导致c++编译器程序为u发在多个重载函数中选择正确的函数进行调用。二义性是致命的,因为编译程序将无法生成目标代码

二义性生成原因:1.隐式类型转换 2.缺省参数;

编译程序选择重载函数的规则:绑定的优先次序是

最优:精确匹配;

次优:对实参类型向高类型转换后的匹配(不丢失精度);

最次:对实参的类型向低类型及相容类型转换后的匹配(能做,但是会报warning)

函数重载不可滥用

不适当的函数重载会降低程序的可读性,只有函数实现的”语义非常相近“时才使用函数重载。

类定义中的函数重载:对类缺省成员函数的重载;构造函数重载(拷贝构造函数);赋值运算符。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

土豆饼小干

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值