通过const引用

通过参考

当传递参数值,返回一个值返回给调用者,唯一的途径是通过函数的返回值。虽然这是适合在很多情况下,在很多情况下,更好的选择是可用的。这样的一种情况是写一个函数需要修改数组的值时(如数组排序)。在这种情况下,它是更有效和更明确的有功能的修改实际的数组传递给它,而不是试图回报对方。

允许函数来修改参数的值的一种方法是使用按引用传递。在通过参考,我们声明该函数的参数作为参考,而不是正常的变量:

1
2
3
4
void foo(const int &x)
{
    x = 6;  // x is a const reference and can not be changed!
}

通过const引用

以价值传递的主要缺点之一是,所有的参数通过值复制到参数。当参数是大的结构或类,这需要很多的时间。参考文献提供了一种方法来避免这种处罚。当一个参数是通过参考,参考是创建实际的参数(以最小的时间)并没有复制的值发生。这允许我们通过大型结构和类以最小的性能损失。

然而,这也是我们打开了潜在的麻烦。引用允许功能改变参数的值,在许多情况下是不可取的。如果我们知道一个函数不应该改变参数的值,但不想按值传递,最好的解决办法是通过const引用。

你已经知道,const引用是指不允许变量引用的被改变。因此,如果我们使用const引用作为参数,我们保证给调用者的功能将不会(不能)变化的论据!

下面的函数将产生编译器错误:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值