Maison >développement back-end >C++ >Références Const dans les arguments de fonction : « const T& » ou « T const& » ?

Références Const dans les arguments de fonction : « const T& » ou « T const& » ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-20 17:03:15545parcourir

Const References in Function Arguments: `const T&` or `T const&`?

Référence Const dans les arguments de fonction : avant ou après le spécificateur de type ?

En C , le placement de la référence const dans les arguments de fonction peut soulever des questions. Considérez les deux extraits de code suivants :

int foo1(const Fred &arg) {
...
}
int foo2(Fred const &arg) {
...
}

Sémantiquement, il n'y a aucune différence entre ces deux arguments. Le langage les traite comme le même type, tous deux faisant référence à une référence constante à un objet de type Fred.

Considérations stylistiques :

Cependant, en ce qui concerne le style , l'utilisation préférée varie selon les programmeurs.

  • const T& : C'est le style utilisé dans "Le langage de programmation C" de Stroustrup et également dans le standard C lui-même.
  • T const& : ce style est moins couramment utilisé mais peut être préféré par certains pour des raisons de cohérence avec les règles d'analyse de droite à gauche, considérées comme une bonne pratique en C .

Analyse de droite à gauche :

Selon la règle d'analyse de droite à gauche, les qualificatifs (tels que const) doivent être appliqués au type à leur gauche. Cela prendrait en charge l'utilisation de T const&.

Cependant, il est important de noter que const T& peut également être analysé efficacement de droite à gauche. Il indique une référence à une valeur constante de type T. De plus, l'ambiguïté de T const* (qui pourrait potentiellement être interprétée comme « pointeur constant vers T » au lieu de « pointeur vers constante T ») fait de const T& le choix le plus sans ambiguïté.

Pratique :

En termes de lisibilité et d'usage courant, const T&/const T ont pris un élan significatif par rapport à T const&/T const. Cela peut être dû à la prédominance de ces styles dans des sources largement reconnues comme le livre de Stroustrup et le standard C. Le respect des pratiques communément acceptées peut améliorer la lisibilité du code.

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