[原创]什么叫左值、右值。以及为什么返回类型要用引用。

    技术2022-05-20  58

    如果不返回引用那作为右值没有问题,即只能拿来用,不能对其赋值。 一般的函数返回值都是拿来用的,如果想要对返回值赋值,则返回引用类型。 所以返回引用类型就这个作用。 举例: 以下是何洁月视频中定义动态数组类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]; }


    最新回复(0)