引用的存在价值

本文对比了C++中引用和指针的使用场景。指针适用于可能为空或需改变所指对象的情况;引用则用于始终代表某对象且不改变的情况。此外,当实现如operator[]等操作符时,返回引用更为合适。
实际上“引用”可以做的不论什么事情“指针”也都可以做。为什么还要“引用”这东西?

答:“用适当的工具做恰如其分的工作”

分析:

    ①一般而言,当你须要考虑“不指向不论什么对象”的可能性时,或者是考虑“在不同一时候间指向不同对象”的能力时,你就应该採用指针。 前一种情况能够将指针设置为 null。 后一种情况能够改变指针所指向的对象。


    ②而当你确定“总是会代表某个对象”。而且“一旦代表了该对象就不再可以改变”,那么就应该选引用。


    ③还有其他情况也须要使用引用,比方当你实现某些操作符的时候。

最常见的样例就是下标运算符operator[]。这个操作符非常特别地必须返回某种可以被当做赋值对象的东西:

vector<int> v(10);
v[5] = 10;
*v[5] = 10;

    假设 operator[]返回的是指针。上面最后一个语句就必须写成这样子。这不是取下标操作符的自然直观的使用方式,所以,取下标操作符最好返回对象的引用。

转载于:https://www.cnblogs.com/jzssuanfa/p/6884495.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值