1、看代码

2、编译结果

3、分析和解决

就拿f(a + b)来说,a+b的值会存在一个临时变量中,当把这个临时变量传给f时,由于f的声明中,参数是int&,不是常量引用,因为c++编译器的一个关于语义的限制。如果一个参数是以非const引用传入,c++编译器就有理由认为程序员会在函数中修改这个值,并且这个被修改的引用在函数返回后要发挥作用。但如果你把一个临时变量当作非const引用参数传进来,由于临时变量的特殊性,程序员并不能操作临时变量,而且临时变量随时可能被释放掉,所以,一般说来,修改一个临时变量是毫无意义的,据此,c++编译器加入了临时变量不能作为非const引用的这个语义限制。

C++之invalid initialization of non-const reference of type ‘int’ from an rvalue of type ‘int’相关推荐

  1. QT之error: cannot bind non-const lvalue reference of type ‘CBaowen’ to an rvalue of type ‘CBaowen

    问题描述:QT中自己编写了一个结构体变量CBaowen,报文中含有函数重载部分(如下所示), 之后定义一个队列变量 QQueue<CBaowen>  queue; 当给队列变量赋值时que ...

  2. cannot bind non-const lvalue reference of type ‘xxx‘ to an rvalue of type ‘xxx‘

    文章目录 报错代码 报错 原因 解决方案 报错代码 #include<iostream> using namespace std; class Complex{private:double ...

  3. C++之error: cannot bind non-const lvalue reference of type ‘myString’ to an rvalue of type ‘myString

    先看代码(不想看代码可以直接看代码后的问题描述) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...

  4. 【C++---const引用】数组进行指针引用传递给函数error: non-const lvalue reference of type ‘int*‘ to an rvalue

    目录 原因 类型转换 手动转换 自动转换 关于临时量 关于常量引用(const的引用) const引用的对象不是不能被修改了吗,这里为什么被修改了? 不是说是const引用吗?为什么又变成了引用所绑定 ...

  5. cannot bind non-const lvalue reference of type ‘***‘ to an rvalue of type ‘***‘解决方法

    在写C++作业的时候,我发现使用 #include <iostream> class complex{public:int real;int imaginary;public:comple ...

  6. error: invalid initialization of reference of type ‘std::string’ from expression of type ‘const s

    error: invalid initialization of reference of type 'std::string&' from expression of type 'const ...

  7. error: invalid initialization of reference of type ‘plb::MultiContainerBlock3D’ from expression of

    最近在某学校的服务器上装老版本的Palabos,结果编译的时候还有这回事: error: invalid initialization of reference of type 'plb::Multi ...

  8. const reference const

    const(一) const修饰的各种类型的变量后(包括普通变量,指针,类,结构体和结构体的指针),其初始化的值不可更改 #include <iostream> using namespa ...

  9. Hive错误记录之Invalid table alias or column reference

    Hive错误记录之Invalid table alias or column reference 1. hive (mydatabase)> select> explode(catagor ...

最新文章

  1. 【面试】足够应付面试的Spring事务源码阅读梳理(建议珍藏)
  2. Oracle常用工具
  3. vb.net 正则 替换 第n个_Python中正则表达式模块详解
  4. k8s get命令:以yaml格式输出deployment对象
  5. 如何提高PHP代码的质量?第二部分 单元测试
  6. JAVA对象内存分配过程
  7. 上一页下一页html样式,软件 | hexo博客主题yilia上一页下一页显示的问题
  8. 维珍创始人的10大成功秘诀
  9. 计算机怎么读,计算机研究生到底该怎么读?
  10. luma3ds7.1按start键开机无法启动payload解决
  11. 高德地图开放平台的使用
  12. Python实现高级电影特效,CXK也能影分身
  13. Shell脚本自动源码包安装LA/NMP架构详解(赠软件包+脚本)
  14. 简明解释算法中的大O符号
  15. tif文件在html打开,电脑里tif文件怎么打开?你学会了吗
  16. JSON格式化工具下载
  17. 工作流(workflow)参考规范概述
  18. FLASH场景切换的几个方法
  19. 讯飞轮值总裁胡郁:大数据是人工智能产业落地的必要保障| BDTC 2019
  20. uiautomator2 adb 安装与运行 python控制手机软件

热门文章

  1. JWT:我应该使用哪种签名算法?
  2. 微软 MS Learn 上线 Blazor 入门教程
  3. 池化对象 RecyclableMemoryStream 在 .netcore 中的使用
  4. 利用 C# 中的 FileSystemWatcher 制作一个文件夹监控小工具
  5. [C#.NET 拾遗补漏]10:理解 volatile 关键字
  6. IBM 声明对 Google 违背承诺未将 Istio 贡献给 CNCF 表示失望
  7. nuget 是如何还原包的
  8. 在Ocelot中使用自定义的中间件(一)
  9. .NetCore 3.1 安装本地化中文智能提示
  10. 推荐一款神器-VBAC#代码编辑管理器