1

演算子の優先順位の表には、ビットごとのシフト演算子 <<>>. これらは出力演算子と同じですよね?

実際、C++ がこれらの同じ演算子を入出力を意味するようにオーバーロードするのはたまたまですよね? これは厳密というよりも伝統ですよね?

4

1 に答える 1

2

<<and>>を出力の演算子として使用することの起源は、2 つのことに関係していると確信しています。

  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;

演算子の優先順位は、演算子をどのように使用するかに関係なく、言語によって定義されます。これは、一般的に「奇妙な」ことを行うために演算子のオーバーロードを使用したくない理由の 1 つです。本当に期待していません...

于 2013-01-13T11:04:01.370 に答える