Accès aux variables globales

Dans certains cas, une variable globale peut être masquée par un argument de la fonction ou par une variable locale. C’est 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 l’argument int x et non la variable globale long x qui est donc masquée par l’argument.

On peut toutefois accéder à la variable globale en utilisant l’opérateur de résolution de portée :: (dont nous expliquerons l’usage au chapitre 6). Il suffit pour cela d’écrire ::x au lieu de x, et l’on 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 Précédent Sommaire Sommaire Suivant Suivant