一、什么是左值、右值?
专业的说法:
- 左值是指表达式结束后依然存在的持久化对象;
- 右值是指表达式结束后就不再存在的临时对象。
通俗的说法:有名字的对象都是左值,右值没有名字。
区分左右值得便捷方法:看能不能对表达式取地址,如果能,则为左值,否则为右值
Tips: C++11把右值分为纯右值和将亡值。不懂纯右值和将亡值的区别其实没关系,统一看作右值即可,不影响使用。
二、左右值引用
左值引用就是给变量取个别名;
右值引用就是给右值取个名字。 语法:数据类型&& 变量名=右值;
⭐ 总结一下,其中T是一个具体类型:
- 左值引用, 使用 T&, 只能绑定左值。
- 右值引用, 使用 T&&, 只能绑定右值。
- 已命名的右值引用是左值。
- 常量左值,使用 const T&, 既可以绑定左值又可以绑定右值。
问:为什么要引入右值?
答:为了实现移动语义
标签:11,右值,绑定,左值,C++,引用 From: https://www.cnblogs.com/itsinsane/p/18237157