Вы всегда должны компилировать свой код с включенными предупреждениями.Компилятор скажет вам, что результат может быть неопределенным:
prog.cc: In function 'int main()':
prog.cc:6:22: warning: operation on 'b' may be undefined [-Wsequence-point]
cout<<++b<<" "<<b++<<" "<<a++<<" "<<++a<<endl;
~^~
prog.cc:6:41: warning: operation on 'a' may be undefined [-Wsequence-point]
cout<<++b<<" "<<b++<<" "<<a++<<" "<<++a<<endl;
^~~
Если вы хотите использовать и изменить одну переменную с одним и тем же выражением, вам нужно проверить порядок вычисления и правила последовательности, чтобы увидеть, если он действителен, и каков ожидаемый результат.