一、对象移动概述

  • C++11标准引入了“对象移动”的概念

  • 对象移动的特性是:可以移动而非拷贝对象

  • 在C++旧标准中,没有直接的方法移动对象。因此会有很多不必要的资源拷贝

  • 标准库容器、string、share_ptr类既支持移动也支持拷贝。IO类和unique_ptr类可以移动但不能拷贝

对象移动的特点

  • 在很多情况下会发生对象拷贝的现象,对象拷贝之后就被销毁了,在这种情况下,对象移动而非对象拷贝会大幅度提升性能

  • 使用移动而非拷贝的另一个原因是:类似于IO类或unique_ptr这样的类,这些类都不能被共享资源(如指针或IO缓冲)。因此,这些类型的对象不能拷贝但可以移动

二、右值引用(&&)

  • 为了支持移动操作,C++11标准引入了新的引用类型——右值引用

  • 所谓右值引用就是必须绑定到右值的引用。我们通过&&而不是&来获得右值引用

  • 右值有一个很重要的性质:只能绑定到一个将要销毁的对象

左值引用(&)

  • “引用(reference)”类型介绍参阅:

  • 为了与“右值引用”区别开来,我们本篇文章中将“”引用(referenceÿ

C++:31---对象引用和赋值相关推荐

  1. java中的对象引用与c++中的对象赋值

    1.java中的的对象引用与c++中的对象赋值比较 1.1在JAVA中用等号对类对象进行赋值,实际上操作的是对象的地址.等号左边的对象名是对象引用,右边可以是对象引用或者对象本身. eg: packa ...

  2. Java 必知必会——什么是对象引用?按值传递 OR 按引用传递?

    1. 什么是对象? 任何事物都可以作为一个对象,一台电脑.一部手机等等等等. 在面向对象程序设计的 Java 中,程序是由对象组成的,对象包含了描述其状态的数据(属性)和可以执行的操作(方法),因此, ...

  3. Python中的对象引用、浅拷贝与深拷贝

    最近项目中遇到一个Python浅拷贝机制引起的bug,由于对于Python中对象引用.赋值.浅拷贝/深拷贝机制没有足够的认识,导致调试了很久才发现问题,这里简单记录一下相关概念. 在Python的设计 ...

  4. 【Verilog】数组 赋值

    reg [31:0] data1 ; reg [3:0] byte1 [7:0]; //由 8 个 4bit reg型变量组成的数组 integer j ; //整型变量,用来辅助生成数字电路 alw ...

  5. python语言用法_python语言基本语句用法总结(1.)

    python语句与语法 1.python简单语句的基本介绍 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21>>> wh ...

  6. Java 基础整理(一)

    1,面向对象的三大特性:封装.继承.多态 封装:通过访问控制符来操作那些暴露那些隐藏,按权限递增列出.private(当前类访问权限).default(包访问权限).protected(子类访问权限) ...

  7. 【JVM】最全笔记(黑马+尚硅谷+张龙整合笔记)

    本身整合了如下视频的笔记,并进行了整理:尚硅谷周阳.张龙.黑马程序员 黑马ppt非常好:https://download.csdn.net/download/hancoder/12834607 本文及 ...

  8. golang个人整理知识点

    环境变量: GOPATH: window下默认值路径为%USERPROFILE%/go,可以删掉新建,然后所有的项目代码放在src子目录下 GOPATH路径下有三个目录src pkg bin 具体的子 ...

  9. PB 常见错误及含义

    原文链接:https://blog.csdn.net/allan131417/article/details/13768317 1. by zero   发生被0除错误 2. Null object ...

  10. 郑志远的java学习笔记

    郑志远的java学习笔记 郑志远    CCB 1         Java起源 略 2         Java语言概述 1.面向对象编程的3个原则:封装(encapsulation).继承(inh ...

最新文章

  1. listview与gridview点击时的背景色取消
  2. 卓语言对泛型类的使用
  3. “2021-01-30T16:00:00.000Z“: expected format “yyyy-MM-dd HH:mm:ss“时间戳格式化
  4. 微信公众号Web页面CSS文件里面的样式不加载
  5. 宅霸java_宅霸游戏联机平台下载|宅霸游戏联机平台免费版下载 v4.5.0 官方版_小皮网...
  6. arduinouno的地是相连的吗_德阳马自达3方向机,宝马X7电子方向机进水可以修吗
  7. java hl7_java-发送HL7消息后何时关闭并重新打开套接...
  8. GitHub中国区前100名到底是什么样的人?(转载)
  9. cocos 微信登陆失败(笔记)
  10. 【Rust日报】 2019-08-05:用Rust重写物联网网关 Part 2: 饮鸩止渴:为什么我们不用C++重写IoT应用...
  11. 计算机win键在哪,Windows键是哪个?电脑上的Win键在哪里? [图片和文字]
  12. 浅谈扫描二维码登录微信网页版与摇一摇传图的实现原理
  13. 春节了,上张祝福图片,顺祝大家新年好运,工作顺利!
  14. 从视频中提取帧图片FFmpeg / 根据文件名提取图片
  15. mac怎么切换输入法(在外接键盘下)
  16. 对一个公益项目的探究(r8笔记第65天)
  17. 优秀的web前端工程师需要哪些软技能
  18. 用dom4j实现对象和xml文件的互相转换
  19. 【2017.12.02普及组模拟】恐怖分子 题解
  20. 如何利用GPT来发论文!!

热门文章

  1. asterisk语音信箱voicemail.conf
  2. 如何构建自己的SIP SERVER!
  3. WinCE下的GPIO中断的处理
  4. wince编译时找不到atls.lib
  5. 电脑入门完全自学手册_室内设计CAD施工图识读手册
  6. 怎么解决相位抵消_【录音教程】如何防止话筒拾音的声学相位抵消
  7. html日期只显示7天,vue+elementui 只能选7天内的日期
  8. 如何用计算机绘图画图,2018年《计算机绘图》考试试题及答案【完整版】.doc
  9. 【转】Wireshark网络抓包(二)——过滤器
  10. Web服务器控件和HTML控件的区别与联系