当前位置: 首页 > news >正文

做自媒体与做网站南通高端网站建设公司

做自媒体与做网站,南通高端网站建设公司,在什么网站做兼职翻译,免费咨询承诺书前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! 目录 一.【左值&左值引用】&…

前言

大家好吖,欢迎来到 YY 滴C++系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁
主要内容含:
在这里插入图片描述

欢迎订阅 YY滴C++专栏!更多干货持续更新!以下是传送门!

目录

  • 一.【左值&左值引用】&【右值&右值引用】
    • 【1】左值&左值引用
      • 左值:
      • 左值引用:
    • 【2】右值&右值引用
      • 右值:
      • 普通右值&将亡值:
      • 右值引用:
  • 二.左值引用右值&右值引用左值の规则
    • 基本规则:
    • 左值引用右值&右值引用左值の总结:
  • 三.move函数
  • 三.探究【右值引用(移动拷贝)是如何大大提高效率?——对比拷贝构造&左值引用】

一.【左值&左值引用】&【右值&右值引用】

【1】左值&左值引用

左值:

  • 左值是一个表示数据的表达式
  • 如: 变量名或解引用的指针
  • 出现位置:左值 可以出现在赋值符号的左边,右边
  • 性质1:左值可以 取地址+可以对它赋值
  • 性质2: 定义时const修饰符后的左值 不可以对它赋值 ,但是 可以对它取地址
    在这里插入图片描述

左值引用:

  • 左值引用就是给左值的引用,给左值取别名
  • int a = 0; int& r1 = a;
  • 代码演示如下:
int main()
{// 以下的ptr、b、c、*p,都是左值int* ptr = new int(0);int b = 1;const int c = 2;"xxxxx";const char* p = "xxxxx";//左值可以取地址cout << &("xxxxx") << endl;//左值引用演示int a = 0;int& r1 = a;
}

【2】右值&右值引用

右值:

  • 右值也是一个表示数据的表达式
  • 如: 字面常量、表达式返回值,函数返回值(这个不能是左值引用返回)等等、
  • 出现位置: 右值可以出现在赋值符号的右边, 但是不能出现出现在赋值符号的左边
    在这里插入图片描述
  • 性质: 右值不能取地址

普通右值&将亡值:

我们一般把右值分为如下两类:

  1. 普通右值
  2. 将亡值,例如:fun( )
    在这里插入图片描述

右值引用:

  • 右值引用就是对右值的引用,给右值取别名
  • 例如:int&& r5 = 10;
  • 代码演示如下:
int main()
{//以下均为右值10;x + y;fmin(x, y);//右值无法取地址// cout << &10 << endl;// cout << &(x+y)<< endl;// cout << &(fmin(x, y)) << endl;// 以下几个都是对右值的右值引用int&& rr1 = 10;double&& rr2 = x + y;double&& rr3 = fmin(x, y);
}

二.左值引用右值&右值引用左值の规则

基本规则:

  • 引用是 取别名
  • 左值引用:给左值取别名————————(1)正常左值引用(2)带const的左值引用
    在这里插入图片描述
  • 右值引用:给右值取别名
  • move( )可以让里面的值具有 右值性质

左值引用右值&右值引用左值の总结:

在这里插入图片描述

int main()
{double x = 1.1, y = 2.2;// 左值引用:给左值取别名int a = 0;int& r1 = a;// 左值引用能否给右值取别名?// const左值引用可以const int& r2 = 10;const double& r3 = x + y;// 右值引用:给右值取别名int&& r5 = 10;double&& r6 = x + y;// 右值引用能否给左值取别名?// 右值引用可以引用move以后的左值int&& r7 = move(a);return 0;
}

三.move函数

引入:按照语法,右值引用只能引用右值,但右值引用一定不能引用左值吗?

  • 因为:有些场景下,可能真的需要用右值去引用左值实现移动语义。当需要用右值引用引用一个左值时,可以通过move函数将左值转化为右值。
  • C++11中,std::move()函数位于 头文件中,该函数名字具有迷惑性,它并不搬移任何东西,唯一的功能就是将一个左值强制转化为右值引用,然后实现移动语义。
int main()
{bit::string s1("hello world");// 这里s1是左值,调用的是拷贝构造bit::string s2(s1);// 这里我们把s1 move处理以后, 会被当成右值,调用移动构造// 但是这里要注意,一般是不要这样用的,因为我们会发现s1的// 资源被转移给了s3,s1被置空了。bit::string s3(std::move(s1));return 0;
}
  • 为什么s1会置空呢?让我们看看接下来一篇博客:

三.探究【右值引用(移动拷贝)是如何大大提高效率?——对比拷贝构造&左值引用】

  • 博客传送门
http://www.yayakq.cn/news/453995/

相关文章:

  • 网站服务器多少钱一月治疗早射最有效的方法是什么
  • 昆明建设厅网站专业的饰品行业网站开发
  • 百元做网站2022年seo最新优化策略
  • 青岛做网站的公司有哪些网站模板下载好之后如何安装
  • 免费商用cms郑州做网站优化最好的公司
  • html5网站框架网站建立连接不安全怎么处理
  • 京东网站建设缺点哈尔滨企业做网站
  • 镇江网站建设制作专门做推广的网站
  • 表单网站怎么做seowordpress宝塔CPU爆满
  • 领地网做网站咋加文章做qa和helpful的网站
  • 食堂网站建设如何在服务器上放网站
  • 2016网站备案网站系统源码
  • 好发网站建设网站 开发
  • 什么网站做英语翻译练习直播系统源码
  • py网站开发视频教程上海外贸公司注册流程及条件
  • 注册了域名怎样做网站电子商务网站后台需求
  • 联系我们_网站制作公司在线制作书封网站
  • 网站建设 广州佛山上海网站推广提供商
  • 房地产 东莞网站建设网页制作培训心得体会
  • 天河网站建设外包机关门户网站建设管理情况
  • 静态网页设计网站制作西安网站建设推广服务
  • 威海市环翠区建设局网站福田网
  • 可以做设计兼职的网站有哪些基木鱼建站教程
  • 网站建设的基本流程怎么查公司企业邮箱
  • 别人给公司做的网站字体侵权吗wordpress ajax 文件
  • 用python做 网站论坛门户网站建设验收报告
  • 做APP必须要有网站么网站建设后台管理便捷
  • 商城网站制作需要多少费用织梦网站首页目录在哪
  • 建设银行网站官网登录短信验证wordpress自助广告
  • 新乡平原新区建设局网站江苏网站建设工作室