Я не специалист по этому вопросу, но я полагаю, что это из-за порядка операций, выполняемых в фоновом режиме.
В основном «<<» - это то, что называется перегруженным оператором, что в основном означает что кто-то где-то написал, что он должен делать и как это делать. И если у вас есть куча вещей, написанных одна за другой, например, у вас есть: </p>
cout<<"Line2="<<++B<<"&"<<A+B<<endl;
Компилятор должен сделать несколько причудливых трюков, чтобы заставить его работать. Программа проходит через такой код справа налево. Так что, по сути, все происходит наоборот, как вы думаете. Сначала он нажимает endl, затем он делает A + B и толкает его, затем он нажимает &, затем он увеличивает B и также толкает его, в конце концов он толкает Line2 =, формируя полное "предложение". Затем они переносятся на консоль (или что-то еще, что у вас может быть) для одновременной печати на экране.
В качестве решения проблемы попробуйте разделить cout на 2 строки; что-то вроде этого:
cout <<"Line2="<<++B<<"&";
cout <<A+B<<endl;
Или, если позволено, попробуйте поменять местами ++ B и A + B, это также должно решить проблему, однако ваши результаты также будут изменены на обратные.
cout<<"Line2="<<A+B<<"&"<<++B<<endl;
tl; dr: A + B происходит до B ++, выполнение их в отдельных строках или смена позиций должны решить проблему