const 与过载

1、方法包括方法名,返回类型,形参表,修饰符。

2、对于一个方法,const可以出现的地方有返回类型,形参表,和方法后(const成员方法)。

3、返回类型的常量性(是否为const)不同,不能构成过载。为什么?

  过载是编译时多态,也就是说,在编译的时候,已经确定下来调用哪个方法。对于又返回类型的方法,调用的时候,可能不处理返回值,这样的话,编译器就不知道该调用哪个方法了。

4、我们知道,形参表不同可以构成过载。如果形参表相同,只是形参的常量性不同,能否构成过载?

  形参为引用或者指针,可以构成过载,否则不能构成过载。为什么?

  过载是编译时多态,必须在编译时确定调用哪个方法。

  如果形参为引用或者指针,调用方法的时候形参就是实参对象本身,根据实参是否为const可以确定调用哪个方法。

  如果形参不是引用或者指针,调用方法的时候会进行copy构造(对应的是copy赋值),与实参没有了关系,编译器不知道该调用哪个方法。  

5、方法后,是否为const成员方法,可以构成过载。为什么?

  这个时候可以根据方法绑定的对象,是否为const,精确匹配,确定调用哪个方法。

注意:对于const成员方法,当前没有过载的非const成员方法,const成员方法会把绑定的对象强制转化为const对象。

主调方法,被调方法,方法的绑定对象(方法的拥有者)。

转载于:https://www.cnblogs.com/nzbbody/p/3369126.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值