首页 > 其他分享 >cannot bind non-const lvalue reference of type ‘QDomElement&’ to an rvalue of type ‘QDomElement’

cannot bind non-const lvalue reference of type ‘QDomElement&’ to an rvalue of type ‘QDomElement’

时间:2024-10-22 17:23:57浏览次数:1  
标签:QDomElement const 右值 int 左值 non type

/mnt/hgfs/SharedFolders/KingKongNano/YiKingStudio/TopoConfig/topoconfigwindow.cpp:2079: error: cannot bind non-const lvalue reference of type ‘QDomElement&’ to an rvalue of type ‘QDomElement’
FreshPdoandVarIndex(TopologyVarFileDocDemo->documentElement());
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~

这个错误的意思

这个错误是指不能将一个非常量左值引用绑定到一个右值上。

那什么是左值右值?

简单理解,能够放在=左边的称为左值,不能放在=左边,只能放在右边的为右值。
例如:int a = 3; 变量a为左值,3为右值,通常右值为一些临时变量,比如函数返回值。

理解了右值,这个错误就很好理解了。

 void FreshPdoandVarIndex(QDomElement &root);  ---------->>>>>>>>> void FreshPdoandVarIndex(const QDomElement &root); FreshPdoandVarIndex(TopologyVarFileDocDemo->documentElement()); ->    QDomDocument * TopologyVarFileDocDemo = new QDomDocument();    ->QDomElement documentElement() const;

常见报错的情况

通常,我们函数参数传递时,采用引用传递常常会遇到这个错误

#include <iostream>

using namespace std;

int add(int &num1, int &num2) {
    return num1 + num2;
}

int main() {
    cout << add(3, 3) << endl;  //这里3是右值,不能绑定到左值引用上
    return 0;
}
//报错:error: cannot bind non-const lvalue reference of type 'int&' to an rvalue of type 'int'

  上面报错是因为参数3是右值,不能绑定到形参num1和num2左值引用上,所以如果我们不需要改变实参的值,又需要用引用传递参数,建议要把引用定义为常量引用,如下就不会报错了:

#include <iostream>

using namespace std;

int add(const int &num1, const int &num2) {
    return num1 + num2;
}

int main() {
    cout << add(3, 3) << endl; 
    return 0;
}

 

标签:QDomElement,const,右值,int,左值,non,type
From: https://www.cnblogs.com/yunyuanfeng/p/18493162

相关文章

  • 在 Python 中使用 Type Hints
    在Python中使用TypeHintsCreated:2024-10-21T16:48+08:00Published:2024-10-22T13:08+08:00Categories:Python工厂方法使用TypeVar作为函数参数的类型注释,可以做到传入什么类型,返回什么类型。fromtypingimportType,TypeVarclassPet:def__init__(sel......
  • Typecho 博客系统搭建
      本次服务器规划旨在为Typecho部署提供稳定、安全、高效的环境,以满足网站访问需求和后续扩展要求。2.服务器需要一台linux服务器2.1物理服务器数量:1台配置:CPU:IntelXeonE5-2620(6核)内存:2GBRAM存储:500GBSSD(用于存储网站文件和数据库)2.2虚拟化环境 ......
  • YOLO11改进-注意力-引入非局部注意力机制NonLocalBlockND 增强小目标、遮挡检测
                       本篇文章将介绍一个新的改进机制——NonLocalBlockND,并阐述如何将其应用于YOLOv11中,显著提升模型性能。首先,我们将解析NonLocalBlockND的工作原理,非局部注意力机制NonLocalBlockND通过在全局范围内捕捉特征图中所有位置的相互关系,提升......
  • 当coretypes.dll守护者缺席:一键解锁应用程序故障自救秘籍
    在计算机的世界里,每一个小小的文件都承载着巨大的责任。而coretypes.dll,这个看似不起眼的动态链接库文件,却是许多应用程序正常运行的守护神。它负责提供核心类型定义和功能支持,一旦丢失或损坏,你的应用程序可能会立刻陷入困境,出现无法启动、崩溃或功能异常等问题。然而,面对这......
  • Vue3 + TypeScript:从环境搭建到组件通信的完整前端开发教程
    在前端开发领域,Vue3与TypeScript的组合备受青睐。Vue3带来高效灵活的开发体验,TypeScript则提供强大的类型安全和可维护性。本文将详细介绍如何使用Vue3和TypeScript进行开发,文章内容将按照以下顺序展开:一、环境准备1.安装Node.js:从Node.js官方网站下载并安装适合......
  • mongodb 查询条件,查询逻辑对照表,逻辑运算符,正则表达式匹配查询,排序,分页/巧分页,更新操
    mongodb查询条件,查询逻辑对照表,逻辑运算符,正则表达式匹配查询,排序,分页/巧分页,更新操作符,更新单个/多个文档,删除文档,批量插入,$type操作符,内嵌文档和数组查找修改1.条件查询SQLMQLa=1{a:1}a<>1{a:{$ne:1}}a>1{a:{$gt:1}}a>=1{a:{$gte:1}}a<1{a:{$lt......
  • 突然断电重启mysql报错[ERROR] [MY-013183] [InnoDBl Assertion failure: trxotypes.h
    当你遇到断电重启后MySQL报告[ERROR][MY-013183][InnoDB]Assertionfailure:trxotypes.h:541:m_rsegs_n<2这样的错误时,这通常指示InnoDB存储引擎在尝试恢复或初始化其内部数据结构时遇到了问题。这个问题很可能是由于断电导致的未正常关闭和文件系统的不一致状态。......
  • 2024/10/20: TypeScript 学习笔记三:TypeScript 类型系统
    一、TypeScript提供的对应类型:booleanstringnumberbigintundefinednullsymbol 二、object类型仅能够赋值给以下三种类型:顶端类型any和unknownObject类型空对象类型字面量“{}”注:所有类型都是顶端类型的子类型,所以object能够赋值给顶端类型any和unkno......
  • TypeORM批量插入
    在TypeORM中,批量插入数据可以通过多种方法实现,包括 save、insert 和 createQueryBuilder。这些方法各有优缺点,适用于不同的场景。使用createQueryBuilder进行批量插入createQueryBuilder 是性能最优的批量插入方法。以下是一个示例:awaitdataSource.createQ......
  • PbootCMS附件上传失败报错UNKNOW: Code: 8192; Desc: stripos(): Non-string needles
    PbootCMS附件上传失败报错“UNKNOW:Code:8192;Desc:stripos():Non-stringneedleswillbeinterpretedasstringsinthefuture.”是由于PHP版本更新导致的兼容性问题。具体来说,stripos()函数在处理非字符串类型的第二个参数(即needle)时,未来版本的PHP将会将其视为字符串,而......