c++ 函数形参关于const和引用

1 非引用的 (const形参 或者非const形参),实参既可以是const 也可以是非const 

  •   a 如果函数使用非引用的非const形参,既可以传递const实参,也可以传递非const实参。因为初始化复制了初始化式的值,所以可以const对象初始化非const对象
  •   b如果函数使用非引用的const形参,既可以传递const实参,也可以传递非const实参。因为实参仍然以副本形式传递,所以传递给函数的既可以是const也可以是非const

2 引用形参(非const引用形参不灵活,一般将不需要修改的引用定义为const引用)

    非const引用形参只能用同类型非const对象初始化:

  • a 如果函数是普通的非const引用形参,显然不能用const实参,因为会在函数内被修改
  • b非const引用必须用该类型的对象进行初始化 ,不能使用右值(或字面值)、可转化类型。

所以涉及到重载:非引用的const和非const ,不是重载 。即当形参以副本传递时,不能基于形参是否为const来实现重载。

C++primer P229 236

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值