我已经超载了&
和*
。如果我这样做:
hgh=(xxx&yy)*vprod1;
它按预期工作。
如果我这样做:
hgh=xxx&yy*vprod1;
我收到编译错误Invalid operands to binary expression.
编译器如何阅读:hgh=xxx&yy*vprod1;
- 它是否会从左向右移动,就像在上面的示例中一样,带括号?如果括号位于表达式的不同部分,我可以理解编译器如何读取它可能存在差异,但为什么这会适用于此?
值得注意的是,两个重载的返回值是相同的,并且在此计算中返回与xx
和yy
相同的类型。
答案 0 :(得分:8)
*
的优先级高于&
,因此首先应用它。你的表达基本上是xxx & (yy * vprod1);