左值引用与右值引用

1. RAII

运行时资源管理,离开作用域后对象自动调用析构函数。右值引用,可以将对象的生命周期延到作用范围之外

2. 左值和右值

参考:左值和右值_左值和右值的区别-优快云博客

前置运算符,一般都属于左值:++i,--i,解引用(*p)。

后置运算符,右值,i--(先取i,再i + 1,再return); a & b,位运算符,也是右值。

将亡值:可以出发移动构造函数,移动拷贝构造函数。

3. 左值引用和右值引用

(1)左值的引用,另外,const 左值引用可以引用右值。

(2)通过std::move对左右值进行相互转换。

【C++基础】std::move用法介绍-优快云博客

(3)左值引用,主要为了避免对象的拷贝构造。

(4)右值引用,资源管理(避免深拷贝);STL应用,比如vector的emplace_back,也是避免了深拷贝;智能指针,方便资源管理。

(5)完美转发

本质是函数模板里,对对象的值和属性进行透传。这里还涉及了引用折叠规则

C++概念:引用折叠、模板推导、通用引用 - imxiangzi - 博客园

视频学习参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值