Espaces de nommage des structures

De RAD Studio
Aller à : navigation, rechercher

Remonter à Structures - Index

Les noms des sélecteurs de structures appartiennent à l'espace de nommage des sélecteurs d'unions et d'énumérations (cependant, en C++, enums dans une structure appartient à un espace de nommage différent). La conséquence est que les sélecteurs doivent avoir un nom unique dans une même portée. Toutefois, ces noms ne doivent pas obligatoirement être différents des identificateurs figurant dans les trois autres espaces de nommage : l'espace de nommage des étiquettes, celui des membres et l'espace de nommage simple (celui des variables, fonctions, typedef et énumérateurs).

Les noms de membres dans une structure ou une union donnée doivent être uniques, mais ils peuvent être identiques à ceux figurant dans d'autres structures ou unions. Par exemple :



 goto s;
     .
     .
     .
 s:           // étiquette
 struct s {   // OK: espaces de nommage différents pour les sélecteurs et les étiquettes
    int s;    // OK: espaces de nommage différents pour les sélecteurs, les étiquettes et les membres
    float s;  // ILLEGAL: nom de membre répété
 } s;         // OK: espace de nommage différent pour les variables Dans C++, cela ne peut
              // être fait que si s n'a pas de constructeur.
 union s {    // ILLEGAL: nom de sélecteur répété
    int s;    // OK: nouvel espace de nommage des membres
    float f;
 } f;         // OK: espace de nommage des variables
 struct t {
    int s;    // OK: espace de nommage membre différent
     .
     .
     .
 } s;         // ILLEGAL: nom var répété