可能重复:
How do we explain the result of the expression (++x)+(++x)+(++x)?
Undefined Behavior and Sequence PointsC + C++ =未定义的行为?
我有问题,在不同方式的代码
U = C + C++;
会运行非标准类型和我自己的类型。 我举一个例子http://ideone.com/4S1uA其中我有不同的int值和我的类Int值,它应该代表真正的Int工作方式。
是否有可能使我的类的行为方式与标准int的工作方式相同?此代码是否有未定义的行为?
为什么它是非玩家的行为? C++有一个操作优先级,所以c++
应该先评估,因为它会改变a的值,所以为了增加第一个参数应该传递新值a
并作为第二个旧值。它对Int类是这样工作的,但对于standart int不适用。
是的,这是未定义的行为。我会让其他人创建一个答案,引用标准等。 – 2012-02-10 20:45:01
请参阅http://stackoverflow.com/questions/367633/what-are-all-the-common-undefined-behaviour-that-ac-programmer -should-know-ab – Dervall 2012-02-10 20:46:22
是的,它是UB,因为它是未定义的,否则将首先评估“C”或“C++”。 – 2012-02-10 20:46:56