Sdílet prostřednictvím


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;
}
  

Viz také

Referenční dokumentace

Sjednocení