Invalid operands to binary expression ('const A' and 'A')
时间: 2023-08-04 14:04:41 浏览: 283
这是一个关于C++编程语言中运算符重载的规则。在类A中重载二元运算符时,如果运算符左侧的操作数是const类型的对象,右侧的操作数是非const类型的对象,则会出现上述错误。这是因为const对象只能访问其成员函数中不会修改对象状态的部分,不能修改对象的值,而非const对象可以修改其值。因此,对于const对象来说,不能使用非const对象作为二元运算符的操作数。如果想要支持这种操作,需要在类中重载const版本的运算符。
相关问题
qt invalid operands to binary expression
invalid operands to binary expression意为二进制表达式的无效操作数,这通常是因为在操作符上对类型进行了错误的操作。比如,对不能比较的类型进行了比较。在你提供的引用中,报错invalid operands to binary expression (const char * and const char)是因为在字符串拼接时,使用了错误的操作符或操作数。
widget.cpp:36:72: error: invalid operands to binary expression ('const char [2]' and 'const char *')
这个错误提示意味着您在widget.cpp文件的第36行第72列使用了两个不兼容的数据类型进行二进制操作。其中一个数据类型是常量字符串(const char [2]),另一个是常量指针(const char *)。
请检查代码并确保您在二进制操作之前正确地声明和初始化了变量。如果您需要将字符串转换为指针,请使用c_str()函数。如果您需要将指针转换为字符串,请使用to_string()函数。
阅读全文