2013-01-13 61 views
1

運算符優先級表只顯示位移運算符<<>>。這些與輸出操作員相同,對嗎?輸入/輸出運算符的優先級

事實上,C++重載這些相同的運算符意味着輸入/輸出,對嗎?這比傳統更加嚴格,不是嗎?

+2

是的,同一個操作符,不同的目的。 – chris

+0

爲什麼不加這個作爲答案? –

回答

2

我確定使用<<>>作爲輸出的運算符的來源是與兩件事有關。

  1. 看起來很明智。
  2. 運營商<<>>在「常規代碼」中並不常用。所以他們可用。如果他們使用operator +, - ,*或/,那將是一個真正的痛苦,因爲你不能寫cout + "The result is : x + y + endl;並得到x + y作爲輸出。這是更常見的比你寫cout << "The result is : " << x << y << endl; - 在這種情況下,你必須使用括號:cout << "The result is : " << (x << y) << endl;

運算符的優先順序是由語言定義的,不管你怎麼使用運營商 - 這是一個原因你不希望使用操作員超載來做一般的「奇怪」事情 - 因爲很容易得到你並不真正期望的東西...