我想知道我的假设是否正确->右值引用的工作方式与左值引用相同,只不过它们只能绑定(bind)到右值,因此可以用于检测右值。

因此,当用作返回类型时,它就像左值引用一样工作,就像它们返回绑定(bind)到的实际对象一样。

当用作参数类型时,它们传递值而不进行任何复制。

我看到很多人问按右值引用和按值(和按左值引用)返回之间有什么区别,但不能全部通过说右值引用像左值引用一样来回答,所以如果您知道会发生什么使用左值引用时,您可能知道使用右值引用时会发生什么,即,您将知道按右值引用返回将返回实际对象,而按值返回将返回一个副本,就像按左值引用和按值返回之间的区别(大致)?

还是我错了?

最佳答案

写入任何命名对象时,都会将其视为其真实类型。

读取任何对象时,会将其视为左值引用。

从函数返回的对象没有名称,因此将其视为其实型。

其他一切都随之而来。

关于c++ - 右值引用是否像左值引用一样工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45127959/

10-10 16:29