Anonymní sjednocení
Anonymní sjednocení jsou sjednocení deklarovaná bez názvu třídy nebo seznam deklarátorů.
union { member-list }
Poznámky
Takové deklarace sjednocení nedeklarují typy, nýbrž objekty.Názvy deklarované v anonymních sjednoceních nemohou kolidovat s jinými názvy deklarovanými v daném oboru.
V jazyce C mohou mít anonymní sjednocení značku. Nemohou mít deklarátory.
Názvy deklarované v anonymním sjednocení se používají přímo jako nečlenské proměnné.
Kromě omezení uvedených v tématu Členská data sjednocení mají anonymní sjednocení i další omezení:
Při deklaraci v oboru souboru musí být deklarovány také s klíčovým slovem static.Při deklaraci v místním oboru musí být statická nebo automatická.
Mohou mít pouze veřejné členy. Soukromé a chráněné členy v anonymních sjednoceních generují chyby.
Nemohou obsahovat členské funkce.
[!POZNÁMKA]
Pouhé vynechání názvu třídy ze syntaxe nečiní sjednocení anonymním.Pro kvalifikaci sjednocení jako anonymního nesmí deklarace deklarovat objekt.
Příklad
// 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;
}