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 + d
为 b + 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 类型,如果使用其它类型,就会出错