Leçons de niveau 14

Langage C++/Portée du code

Une page de Wikiversité.
Sauter à la navigation Sauter à la recherche
Début de la boite de navigation du chapitre
Portée du code
Icône de la faculté
Chapitre no 10
Leçon : Langage C++
Chap. préc. :Pointeur, Tableaux et références
Chap. suiv. :Enumérations
fin de la boite de navigation du chapitre
Icon falscher Titel.svg
En raison de limitations techniques, la typographie souhaitable du titre, « Langage C++ : Portée du code
Langage C++/Portée du code
 », n'a pu être restituée correctement ci-dessus.


Portée du code[modifier | modifier le wikicode]

En C++ la notion de "portée du code" est très importante car elle permet de décrire ce qui se passe, dans quel cadre, et dans une certaine mesure ce qui existe et ce qui n'existe pas encore au travers de contextes d'exécutions.

Portée Globale[modifier | modifier le wikicode]

La portée globale fourni un espace de partage pour toute l'application.

Début d'une démonstration


Fin de la démonstration

La portée Globale englobe tout le programme.

Bien qu’il soit facile de s'en servir de fourre-tout il est déconseillé de le faire. En fait si on le faisait on se retrouverait avec une myriade de types et de noms de variables que l’on ne pourrait pas distinguer des types et variables que l’on crée soit même.

C'est pour cela qu’il existe les autres portées et notamment la portée nommée

Portée Nommée "Espace de nom"[modifier | modifier le wikicode]

La portée nommée (aussi appelé "Espace de nom" du fait du mot clé qui les déclare "namespace") est la portée la plus simple à la disposition du développeur. Elle permet de fournir des noms pour encapsuler des constantes, des variables des types et des méthodes ceci afin de restreindre le champs d'application de ces objets ou de fournir une architecture pour leurs utilisation. Ce type de portée est surtout utilisé dans le but de diviser pour mieux régner et délivre toute sa puissance dans l'implémentation des énumérations au sein d'un IDE graphique.

Début de l'exemple


Fin de l'exemple


Il peut être tentant de fournir des noms identiques à des types/variables/méthodes pour des d'espaces de noms différents. Mais cela est à éviter pour trois raisons :

  • Cela porte à confusion,
  • Ne sachant pas comment les utilisateurs vont les utiliser il vaut mieux éviter les homonymes (risque d'inversion de variables),
  • Cela provoque des erreurs de compilations si l'utilisateur met des using sur les deux namespaces simultanément et l'obligera à taper le nom du namespace à chaque fois.

Portée Locale[modifier | modifier le wikicode]

La portée locale et la plus petite portée qui existe. C'est la portée disponible dans les méthodes, les boucles et les structures de tests conditionnels. Elle est généralement déterminée par les accolades. La portée locale est la portée pour laquelle les variables déclarées dans cette même portée sont accessibles. C'est pour cette raison que les portées locales doivent être clairement identifiées et identifiables. Pour cela il est impératif de les écrire toutes explicitement et de bonne pratique de tabuler chaque niveau de portées afin que l’on puisse facilement les dissocier. La tabulation standard des éditeurs de textes des IDE du marché tourne entre 4 et 6 espaces. Dans le projet LINUX les recommandations de tabulation sont de 8 espaces. La plupart des développeurs modernes vous maudiront si vous tabulez en dessous de 4 espaces.

Début de l'exemple


Fin de l'exemple


Portée "STATIQUE"[modifier | modifier le wikicode]

La portée statique est la portée des membres statiques du programme. Elle se distingue des autres types de portées par le fait qu'une variable statique existe au chargement du programme dans la mémoire mais n'est accessible que dans la portée locale de sa déclaration.

Début de l'exemple


Fin de l'exemple