3

我已经超载了&*。如果我这样做:

hgh=(xxx&yy)*vprod1;

它按预期工作。

如果我这样做:

hgh=xxx&yy*vprod1;

我收到编译器错误Invalid operands to binary expression.

编译器如何读取这个:hgh=xxx&yy*vprod1;-- 它不会像上面的例子那样从左到右移动,带括号吗?如果括号位于表达式的不同部分,我可以理解编译器读取它的方式会有什么不同,但是为什么这适用于这里呢?

值得注意的是,这两个重载的返回值是相同的,并且返回的类型与此计算中的xxand are 相同。yy

4

1 回答 1

8

*的优先级高于&,因此首先应用。你的表情基本上是xxx & (yy * vprod1);

于 2013-06-12T05:39:21.550 回答