Position du problème

Il existe certaines situations où l'on peut accepter que le même nom désigne plusieurs objets différents, parce que le contexte d'utilisation du nom permet de déterminer quel est l'objet référencé. Considérons l'exemple suivant :
struct st1
   {
   int i;
   int j;
   };

struct st2
   {
   int i;
   double d;
   };

int main(void)
{
struct st1 s1;   /*   déclaration de la variable s1   */
struct st2 s2;   /*   déclaration de la variable s2   */

s1.i = s2.i;
}

Dans l'instruction s1.i = s2.i, il y a deux occurrence du nom i, la première désigne le i de s1, et la seconde désigne le i de s2. On voit que le contexte d'utilisation de i a permis de déterminer à chaque fois de quel i il s'agit. On dit alors que le i de s1 et le i de s2 appartiennent à des espaces de noms différents.



Matthieu Moy 2017-02-08