【可乐教育】C++左值(引用)和右值(引用)(可乐老师编程)

【可乐教育】C++左值(引用)和右值(引用)(可乐老师编程)
  • 写C++代码编译时,有时会出现左值问题错误或右值错误,那左值和右值究竟是什么呢???

一、左值与右值

  • 啥是左值和右值呢?

左值:在内存有确定存储地址、有变量名,表达式结束依然存在的值,简单来说左值就是非临时对象。

右值:就是在内存没有确定存储地址、没有变量名,表达式结束就会销毁的值,简单来说右值就是临时对象。

二、左值引用于右值引用

  • 知道了左值与右值了,那啥是左值引用与右值引用呢?左值引用:其实就是绑定到左值的引用,通过&来获得左值引用。
  • 总结归纳:非常量左值引用只能绑定到非常量左值上;常量左值引用可以绑定到非常量左值、常量左值、非常量右值、常量右值等所有的值类型。
  • 右值引用:其实也是绑定到右值的引用,通过&&来获得右值引用。
  • 总结归纳:非常量右值引用只能绑定到非常量右值上;常量右值引用可以绑定到非常量右值、常量右值上。

三、右值引用与左值引用的区别

  • 1、左值引用绑定到有确定存储空间以及变量名的对象上,表达式结束后对象依然存在;2、右值引用绑定到要求转换的表达式、字面常量、返回右值的表达式等临时对象上,赋值表达式结束后就对象就会被销毁。3、左值引用后可以利用别名修改左值对象;右值引用绑定的值不能修改。

四、引入右值引用的原因

  • 1、替代需要销毁对象的拷贝,提高效率:某些情况下,需要拷贝一个对象然后将其销毁,如:临时类对象的拷贝就要先将旧内存的资源拷贝到新内存,然后释放旧内存,引入右值引用后,就可以让新对象直接使用旧内存并且销毁原对象,这样就减少了内存和运算资源的使用,从而提高了运行效率;2、移动含有不能共享资源的类对象:像IO、unique_ptr这样的类包含不能被共享的资源(如:IO缓冲、指针),因此,这些类对象不能拷贝但可以移动。这种情况,需要先调用std::move将左值强制转换为右值,再进行右值引用。

特别声明:[【可乐教育】C++左值(引用)和右值(引用)(可乐老师编程)] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

治疗甲亢的进口药💊物有什么(甲亢进口药价格多少钱)

治疗甲亢的进口药物包括甲巯咪唑片、丙硫氧嘧啶片、左甲状腺素钠片、碘化钾口服溶液和普萘洛尔片。这些药物需在医生指导下使用,因为甲亢通常由甲状腺激素分泌过多引起

治疗甲亢的进口药💊物有什么(甲亢进口药价格多少钱)

加湿器怎么选?适合家用的十大机型排名种草!(加湿器怎么选?3)

所以给大家推荐专业的老品牌宫菱,它具备发烧级性能的同时,成功突破了单纯加湿方面的局限,更打造行业净化-吸附-过滤-抑菌-清洁-加湿的全面安全闭环,达到母婴级无害的严苛标准。 (1)它的水箱容量是4L,整体是比…

加湿器怎么选?适合家用的十大机型排名种草!(加湿器怎么选?3)

女子故意踹倒路边多辆电动自行车 行为引网友热议(女孩踹人)

9月14日,上海一名网友发布了一段视频,显示在上海市浦东新区杨高中路地铁口,一名女子故意踹倒了多辆停放的电动自行车。视频中,该女子身穿灰色连帽外套🧥,背着粉色背包,在行走过程中连续踹倒了非机动车停放区内的多辆电动车

女子故意踹倒路边多辆电动自行车 行为引网友热议(女孩踹人)

Rinnai林内壁挂炉常见故障及售后服务(林内壁挂炉挂炉好不好)

Rinnai林内壁挂炉售后服务体系 24小时极速响应全国统一服务热线400-891-3839(无语音导航直通人工)物联网机型用户可通过林内智家APP一键报修,北京上海等城市『工程师』最快1小时上门原厂级维修保障…

Rinnai林内壁挂炉常见故障及售后服务(林内壁挂炉挂炉好不好)

iPhone手机可以用多少年?从iPhone 17到“钉子户”养成,一篇讲透寿命密码!(iphone手机可以用多少年)

2025年入手苹果手机,正常用4-5年流畅不卡顿是基础操作,选对机型+科学维护,用满7年当"钉子户"也不是梦!本文结合iPhone 17系列最新动态,从硬件配置、电池寿命、系统支持到使用习惯,手把手教你延

iPhone手机可以用多少年?从iPhone 17到“钉子户”养成,一篇讲透寿命密码!(iphone手机可以用多少年)