Я читал о << Оператор в C ++ из C ++ Primer.
В нем есть несколько строк, написанных о << оператор
соиЬ << «Некоторая строка» соответствует левому оператору ostream, результатом которого является сам объект cout (мы говорим, что оператор связывает слева направо).
Было бы здорово, если бы кто-то объяснил, в чем смысл вышеупомянутых строк.
Ассоциативность слева направо означает, что выражение неявно заключено в скобки следующим образом:
(((cout << "foo") << "bar") << "baz")
Другими словами, самая левая операция идет первой.
Напротив, назначение является ассоциативным справа в большинстве языков:
a = b = c + 5;
правопреемники c + 5
на «а» и «б», потому что оператор присваивания работает справа налево.
Это означает, что
cout << a << b
такой же как
(cout << a) << b
не
cout << (a << b)
Уточнить: cout << a
часть выводит a, затем возвращает cout, поэтому результат (cout << a)
может использоваться как левая сторона << b
, Ассоциативность слева означает, что если в скобках выражение может означать что-то еще, предположим, что скобки установлены слева направо.