Dans certains cas, une variable globale peut être masquée par un argument de la fonction ou par une variable locale. Cest le cas lorsque les deux ont le même nom, comme dans cet exemple :
long x = 4; void fonc(int x, int y) { // ... }
Toute référence à x
dans la fonction fonc
désigne largument int x
et non la variable globale long x
qui est donc masquée par largument.
On peut toutefois accéder à la variable globale en utilisant lopérateur de résolution de portée ::
(dont nous expliquerons lusage au chapitre 6). Il suffit pour cela décrire ::x
au lieu de x
, et lon désigne ainsi la variable globale :
long x = 4; void fonc(int x, int y) { ::x += x*y; }
La fonction fonc
ajoute donc le produit de ses deux arguments à la variable globale long x
.
Précédent | Sommaire | Suivant |