我正在阅读<<来自C ++ Primer的c ++运算符 在其中,有一些关于<<<<操作
cout<< “some string”计算左手ostream运算符,表达式的结果是cout对象本身。(我们说运算符从左到右关联)。
如果有人解释上述线条的含义,那就太棒了。
答案 0 :(得分:4)
这意味着
cout << a << b
与
相同(cout << a) << b
不是
cout << (a << b)
澄清:cout << a
部分输出a,然后返回cout,因此(cout << a)
的结果可以用作<< b
的左侧。左关联只是意味着括号是否可以使表达式意味着别的东西,假设括号从左到右设置。
答案 1 :(得分:3)
从左到右的关联性意味着表达式隐式括起来,如下所示:
(((cout << "foo") << "bar") << "baz")
换句话说,最左边的操作首先出现。
相比之下,在大多数语言中,赋值是正确关联的:
a = b = c + 5;
将c + 5
分配给“a”和“b”,因为赋值运算符从右向左工作。