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
Libérer: 2024-12-14 18:29:15
original
341 Les gens l'ont consulté

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;
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal