y > 1)? " />
連鎖論理演算子: C の (4 > y > 1) の評価
C のステートメント (4 > y > 1)論理的に見えるかもしれませんが、その評価は次の特定の順序に従います。
解析と評価の順序
ステートメントは ((4 > y) > 1) として解析されます。 ) は左から右に評価され、式 4 > y は true の場合は 0 を返し、false の場合は 1 を返します。
結果の評価
0 または 1 が 1 より大きくなることはないため、ステートメント全体は常に false を返します。ただし、y が の場合は例外が発生します。 > 演算子がオーバーロードされているクラスのオブジェクトの場合、オーバーロードされた演算子の動作が決定します。 result.
オーバーロード例外
次のコード スニペットを考えてみましょう:
class mytype{}; mytype operator>(int x, const mytype &y) { return mytype(); } int main() { mytype y; cout << (4 > y > 1) << endl; return 0; }
この例では、y はクラス mytype であり、> ; 演算子がオーバーロードされているため、コードはコンパイルに失敗します。
以上がC は (4 > y > 1) のような連鎖比較演算子をどのように評価しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。