C++报错 invalid operands to binary expression

c++ - 为什么加 "const"就解决了 "invalid operands to binary expression"

=========================================

c++ - 为什么加 "const"就解决了 "invalid operands to binary expression"

我已经通过 Integer operator+(Integer & a, Integer & b) 重载了运算符 +。但是当我执行 a=b+c+d 时,它给出了 invalid operands to binary expression 的错误。但是通过在参数中添加const,就没有更多的错误了。为什么会这样?

最佳答案

b + c + db + c结果生成一个临时的。然后将该临时对象的引用传递给对 operator+() 的第二次调用。

只有 const 引用可以绑定(bind)到临时对象。

有关进一步讨论,请参阅 How come a non-const reference cannot bind to a temporary object?

关于c++ - 为什么加 "const"就解决了 "invalid operands to binary expression",我们在Stack Overflow上找到一个类似的问题:  https://stackoverflow.com/questions/26313569/ 

C++报错 invalid operands to binary expression

在这里插入图片描述
invalid operands to binary expression
二进制表达式的操作数无效

顾名思义 错误出在操作符上 对类型的操作问题

比如:两种不能比较的类型进行了比较,比如我这里

   https://blog.csdn.net/Karthus77/article/details/116028778

C 语言编译碰到 invalid operands to binary 如何解决? - 知乎

invalid operands to binary 意味着 binary operator 没有被正确使用。

比如说当使用 % 的时候,运算符两边必须是 integer 类型,如果使用其它类型,就会出错

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐