如果不返回引用那作为右值没有问题,即只能拿来用,不能对其赋值。
一般的函数返回值都是拿来用的,如果想要对返回值赋值,则返回引用类型。
所以返回引用类型就这个作用。
举例:
以下是何洁月视频中定义动态数组类array<T>时,类里重载[]运算符的函数定义。
只用返回引用类型,那么才可以将返回的如a[1]作为左值对其赋值。
//
重载下标操作符,实现与普通数组一样通过下标访问元素,并且具有越界检查功能
template <class T>
T& Array<T>::operator[] (int n)
{
//
检查下标是否越界
if (n < 0 || n > size-1)
Error(indexOutOfRange,n);
//
返回下标为
n
的数组元素
return alist[n];
}