次のコードを検討してください。
#include <iostream>
struct Foo
{
Foo() : bar( 0 ) {}
int bar;
};
int main()
{
Foo foo;
++(foo.bar);
std::cout<< foo.bar << std::endl;
system("pause");
return 0;
};
なぜfoo.bar
1 に評価されるのですか?
の括弧は(foo.bar)
名前のない (右辺値) 式を作成し、それがインクリメントされませんか?