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
( a
int 型の場合)の違いは何ですか?