y > 1) ? " />
Opérateurs logiques chaînés : évaluation de (4 > y > 1) en C
L'instruction (4 > y > 1) en C peut paraître logique, mais son évaluation suit un ordre d'opérations précis.
Analyse et ordre des opérations Évaluation
L'instruction est analysée comme ((4 > y) > 1). Les opérateurs de comparaison (< et >) sont évalués de gauche à droite. renvoie 0 si vrai et 1 si faux. Ce résultat est ensuite comparé à 1.
Résultat. Évaluation
Puisque 0 ou 1 n'est jamais supérieur à 1, l'instruction entière renverra toujours false. Cependant, une exception se produit lorsque y est un objet d'une classe où l'opérateur > dans de tels cas, le comportement de l'opérateur surchargé détermine le résultat.
Surcharge Exception
Considérez l'extrait de code suivant :
class mytype{}; mytype operator>(int x, const mytype &y) { return mytype(); } int main() { mytype y; cout << (4 > y > 1) << endl; return 0; }
Dans cet exemple, où y est de la classe mytype et l'opérateur > est surchargé, la compilation du code échouera.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!