Dans un programme C, si une variable locale a le même nom qu'une variable globale, c'est elle qui est utilisée dans le bloc de définition de cette variable. La variable globale n'étant pas accessible. En C++, il est possible d'exploiter la variable globale en faisant précéder cette variable du double symbole '::'.
int a=1 ; // variable globale
...
{ char a='c' ;
// affichage des deux variables
cout << a << ::a << endl ;
à détailler la portée dans les variables for ainsi que la déclaration
de variables à n'importe quel endroit dans un bloc.
l'opérateur '::' fait toujours référence à la variable globale
#include <iostream.h>
int x=3 ;
int main(void) {
cout << x << endl ; // affiche 3
char x='c' ;
cout << x << endl ; // affiche c
cout << ::x << endl ; // affiche 3
{
cout << "sous-bloc" << endl ;
float x = 3.14 ;
cout << x << endl ; // affiche 3.14
cout << ::x << endl ; // affiche 3
}
return 0 ;
}