Maison >développement back-end >C++ >Comment C évalue-t-il les opérateurs de comparaison chaînée comme (4 > y > 1) ?

Comment C évalue-t-il les opérateurs de comparaison chaînée comme (4 > y > 1) ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-14 18:29:15337parcourir

How Does C   Evaluate Chained Comparison Operators Like (4 >y >1) ?
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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn