在处理对象或原始类型时,为什么C ++操作优先级不同++ a * b / b--- a

时间:2015-12-02 14:21:55

标签: c++

我很困惑为什么两个相同的表达式给出不同的结果?唯一的区别只是在表达式()中我使用自定义原始包装类型。

为了清晰起见,我提供了代码:     struct Int {     int值;

beforeEach(module(function($provide) {
  $provide.service('mockService', mockService); // where mockService is a constructor function
}));

Clang编译器也会显示一个警告--Wunsequenced,但仅适用于具有基本类型的表达式。

1 个答案:

答案 0 :(得分:2)

for (A p: aList) { p.methodFromA(); if (p instanceof B) { B q = (B) p; q.methodOnlyBHas(); // or ((B)p).methodOnlyBHas(); } } 之类的所有表达式都有未定义的行为,因为变量是在没有sequence point的情况下读取和写入的。