class cls
{
int x;
public:
cls(int i=-20) { x=i; }
int f() { return x; }
int main()
{
cls a(14);
int b;
b=a.f()++;
cout<<b;
return 0;
}
この行で「インクリメントオペランドとして必要な左辺値」を取得していますb=a.f()++;。に変更するとb=++a.f();同じエラーが発生しますが、変更すると正常にb=a.f()+1;動作します。++前置オペランドまたは後置オペランドがある場合、コンパイラはどのように考え++ますか? a++(or ++a) とa=a+1( aint 型の場合)の違いは何ですか?