Maison > développement back-end > C++ > Quand faut-il surcharger l'opérateur virgule en C ?

Quand faut-il surcharger l'opérateur virgule en C ?

Mary-Kate Olsen
Libérer: 2024-11-02 22:37:03
original
461 Les gens l'ont consulté

When Should You Overload the Comma Operator in C  ?

Quand utiliser la surcharge de l'opérateur virgule

Bien que la surcharge de l'opérateur virgule ne soit pas fréquemment abordée en C, les idées fausses qui l'entourent ont soulevé la question de ses applications pratiques.

Cas d'utilisation appropriés

Une situation dans laquelle la surcharge des opérateurs virgules s'avère utile est celle où l'on travaille avec des cartes qui nécessitent plusieurs index. Prenons l'exemple suivant :

<code class="c++">enum Place {new_york, washington, ...};

pair<Place, Place> operator , (Place p1, Place p2)
{
    return make_pair(p1, p2);
}

map< pair<Place, Place>, double> distance;
distance[new_york, washington] = 100;</code>
Copier après la connexion

Dans ce scénario, l'opérateur virgule surchargé permet une indexation pratique de la carte à l'aide de deux valeurs. La paire construite est ensuite utilisée comme clé de mappage.

Remarque : Il convient de mentionner que la surcharge de l'opérateur virgule sans parenthèses est obsolète à partir de C 20 et supprimée en C 23. Par conséquent, il est indispensable de le mettre entre parenthèses pour assurer la compatibilité avec les dernières versions C.

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