高级架构工程师C++进阶课程(内存泄漏、面试、开源框架、协程、STL、C++11新特性、即时通讯)_哔哩哔哩_bilibili
什么是左值
可以在等号左边,可以取地址,具名
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
int main(int argc, char const *argv[]) { int i = 0; ++i = 10; (i+=10) = 1000; cout<< i << endl; return 0; }
什么是右值
可以在等号右边,不可以取地址,不具名
纯右值
字面值
返回引用类型的函数调用
后置自增
算术表达式
逻辑表达式
将亡值(c++ 11新特性(移动语义))
int &&
const $t 可以转发右值但是不能够修改值,
移动构造比深拷贝更加节约资源,不需要重新申请内存空间
因为深拷贝是const修饰的不能够修改属性值
通过std::move()将左值指向右值,并且可以修改右值
实现移动语义(对象赋值时,避免资源的重新分配)需要深拷贝的资源
完美转发
用于函数模板可以将自己的参数完美的转发给内部调用
万能引用,通过引用接收左右属性的值