首页 > 编程语言 >C++11新标准の右值引用

C++11新标准の右值引用

时间:2024-10-27 13:31:13浏览次数:4  
标签:11 右值 绑定 左值 C++ 引用

一、什么是左值、右值?

专业的说法:

  • 左值是指表达式结束后依然存在的持久化对象;
  • 右值是指表达式结束后就不再存在的临时对象。
    通俗的说法:有名字的对象都是左值,右值没有名字。

区分左右值得便捷方法:看能不能对表达式取地址,如果能,则为左值,否则为右值

Tips: C++11把右值分为纯右值和将亡值。不懂纯右值和将亡值的区别其实没关系,统一看作右值即可,不影响使用。

二、左右值引用

左值引用就是给变量取个别名;
右值引用就是给右值取个名字。 语法:数据类型&& 变量名=右值;
⭐ 总结一下,其中T是一个具体类型:

  1. 左值引用, 使用 T&, 只能绑定左值。
  2. 右值引用, 使用 T&&, 只能绑定右值。
  3. 已命名的右值引用是左值。
  4. 常量左值,使用 const T&, 既可以绑定左值又可以绑定右值。

问:为什么要引入右值?

答:为了实现移动语义

标签:11,右值,绑定,左值,C++,引用
From: https://www.cnblogs.com/itsinsane/p/18237157

相关文章

  • Chromium127调试指南 Windows篇 - 安装C++扩展与配置(五)
    前言在前面的文章中,我们已经安装了VisualStudioCode(VSCode)并配置了基本的扩展。现在,我们将进一步优化我们的开发环境,重点关注C++相关的依赖扩展。这些扩展对于在VSCode中高效开发和调试Chromium项目至关重要。此外,我们还将学习如何使用gn工具生成VisualStudio2022的项目......
  • CSP/信奥赛C++刷题训练:经典二分例题(2):洛谷P1678:烦恼的高考志愿
    CSP/信奥赛C++刷题训练:经典二分例题(2)烦恼的高考志愿题目背景计算机竞赛小组的神牛V神终于结束了高考,然而作为班长的他还不能闲下来,班主任老t给了他一个艰巨的任务:帮同学找出最合理的大学填报方案。可是v神太忙了,身后还有一群小姑娘等着和他约会,于是他想到了同为计......
  • C++中decltype关键字用法总结
    目录一、前言二、基本用法及示例 三.推导规则四.decltype与typeid的区别五.decltype与std::decay的关系六.总结一、前言        decltype是C++11新增的一个关键字,和auto的功能一样,用来在编译时期进行自动类型推导。引入decltype是因为auto并不适用于所有......
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——15.C++11(1)
    1.自动类型推导(auto)C++11引入了auto关键字,可以根据初始值的类型自动推导变量的类型,从而减少了手动声明类型的繁琐。例如:std::vector<int>vec={1,2,3,4};autoit=vec.begin();//自动推导类型为std::vector<int>::iteratorauto的引入使代码更加简洁......
  • 【学术论文投稿】Windows11开发指南:打造卓越应用的必备攻略
    【IEEE出版·南方科技大学】第十一届电气工程与自动化国际会议(IFEEA2024)_艾思科蓝_学术一站式服务平台 更多学术会议论文投稿请看:https://ais.cn/u/nuyAF3目录引言 一、Windows11开发环境搭建二、Windows11关键新特性三、Windows11设计指南四、Windows11开发实战代......
  • C++ -stack、queue
    博客主页:【夜泉_ly】本文专栏:【C++】欢迎点赞......
  • Windows11 C盘扩容
    https://www.pcoic.com/system/windows/218.htmlWindows系统内置了一个强大的工具——磁盘管理,下文我将模拟日常需求,分别演示新建、合并分区,以及分配和修改盘符的操作。一、新建分区这是电脑用户最主要的需求。前两三年SSD的价格还比较高,高端电脑普遍采取SSD+HDD的组合......
  • 为什么 C++ 能够源码级兼容C语言
    ##为什么C++能够源码级兼容C语言在探讨C++为何能源码级兼容C语言的问题时,我们首先需要明确一点:C++设计之初,就将与C语言的兼容性作为核心目标之一。这种兼容性主要体现在两个方面:语法和库函数。简而言之,C++保留了C语言的语法结构和大部分库函数,同时引入了面向对象编程、泛型编......
  • 配置pytorch环境2024-更新至win11
    配置pytorch环境2024windows111.安装anacondacondacreate-n{虚拟环境名}python=3.9matplotlibnumpypandasjupyter我们新建一个python版本为3.9的虚拟环境,初始化安装了matplotlib,numpy,pandas库,以避免后续依次安装而造成的依赖版本冲突问题。Tips:经验得出的结论,......
  • Windows 11 version 24H2 & LTSC 2024 中文版、英文版 (x64、ARM64) 下载 (updated Oc
    Windows11version24H2&LTSC2024中文版、英文版(x64、ARM64)下载(updatedOct2024)Windows11,version24H2,企业版arm64x64请访问原文链接:https://sysin.org/blog/windows-11/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org全新推出Windows11全新......