输入/输出操作符的优先级

The precedence of the input/output operators

本文关键字:优先级 操作符 输出 输入      更新时间:2023-10-16

运算符优先表仅显示位移位运算符 <<>>。这些和输出运算符是一样的,对吧?

实际上,c++恰好重载了这些相同的操作符来表示输入/输出,对吧?这更像是一种传统,而不是更严格的规定,不是吗?

我确信使用<<>>作为输出操作符的起源与两件事有关。

  1. 看起来很合理。
  2. 操作符<<>>在"常规代码"中并不常用。所以它们是可用的。如果他们使用运算符+,-,*或/,这将是一个真正的痛苦,因为你不能写cout + "The result is : x + y + endl;并得到x + y作为输出。它比你写cout << "The result is : " << x << y << endl;要少得多——在这种情况下,你必须使用括号:cout << "The result is : " << (x << y) << endl;

操作符优先级的顺序是由语言定义的,无论你如何使用操作符——这是你不想使用操作符重载来做"奇怪"事情的一个原因——因为它很容易得到一些你意想不到的东西……