实际上“引用”可以做的不论什么事情“指针”也都可以做。为什么还要“引用”这东西?
答:“用适当的工具做恰如其分的工作”
分析:
①一般而言,当你须要考虑“不指向不论什么对象”的可能性时,或者是考虑“在不同一时候间指向不同对象”的能力时,你就应该採用指针。 前一种情况能够将指针设置为 null。 后一种情况能够改变指针所指向的对象。
②而当你确定“总是会代表某个对象”。而且“一旦代表了该对象就不再可以改变”,那么就应该选引用。
最常见的样例就是下标运算符operator[]。这个操作符非常特别地必须返回某种可以被当做赋值对象的东西:
vector<int> v(10); v[5] = 10; *v[5] = 10;
假设 operator[]返回的是指针。上面最后一个语句就必须写成这样子。这不是取下标操作符的自然直观的使用方式,所以,取下标操作符最好返回对象的引用。