欢迎光临散文网 会员登陆 & 注册

C++ 引用作为返回值&左值和右值的区别

2022-02-16 22:33 作者:达达里A  | 我要投稿

C++ 引用

通过使用引用来替代指针,会使 C++ 程序更容易阅读和维护。C++ 函数可以返回一个引用,方式与返回一个指针类似。

当函数返回一个引用时,则返回一个指向返回值的隐式指针。这样,函数就可以放在赋值语句的左边。例如,请看下面这的程序:

左值和右值

1、为什么element函数返回对象的引用?

这里返回实际上是一个数组元素,比如points.element(0),它是一个point这个object下标为0的元素。

我们访问一个数组,它需要是左值,例如a[2]=4,a[2]在赋值运算符左边,所以我们需要它是左值,而不带引用的函数返回的一个this.object,是一个对象临时副本,也就是右值。

结论:返回“引用”可以用来操作封装数组对象内部的数组元素。如果返回“值”则只是返回了一个“副本”,通过“副本”是无法操作原来数组中的元素的。

2、对左值和右值定义

左值:是指表达式结束后依然存在的持久对象,有内存地址的表达式,可以出现在等号的左边和右边

右值:指表达式结束时就不再存在的临时对象,没有内存地址的表达式,只能出现在等号的右边

左值和右值都是针对表达式而言的,显然右值不可以被取地址。

右值的3种情况

参考:C++新标准001_“左左右右分不清”右值引用_哔哩哔哩_bilibili

C++ 引用作为返回值&左值和右值的区别的评论 (共 条)

分享到微博请遵守国家法律