Unions anonymes
Les unions anonymes sont des unions déclarés sans nom de classe ou liste de déclarateur.
union { member-list }
Notes
De telles déclarations d'union ne déclarez pas de types (elles déclarent des objets.Les noms dans une union anonyme ne peuvent pas être en conflit avec d'autres noms déclarés dans la même portée.
En C, une union anonyme peut avoir une balise ; elle ne peut pas avoir des déclarateurs.
Les noms dans une union anonyme sont utilisés directement, comme les variables non - membre.
En plus de les restrictions répertoriées dans Données membres d'union, les unions anonymes sont soumis aux restrictions supplémentaires :
elles doivent également être déclarées comme statique si déclaré dans la portée du fichier.Si déclaré dans une portée locale, ils doivent être statiques ou automatique.
Elles peuvent avoir que des membres publics ; les membres privés et protégés dans les unions anonymes génèrent des erreurs.
ils ne peuvent pas avoir des membres de fonction.
[!REMARQUE]
Simplement en omettant la partie de nom de classe de la syntaxe n'est pas une union une union anonyme.Pour qu'une union qualifie comme une union anonyme, la déclaration ne doit pas déclarer un objet.
Exemple
// anonymous_unions.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main() {
union {
int d;
char *f;
};
d = 4;
cout << d << endl;
f = "inside of union";
cout << f << endl;
}