Compartilhar via


Uniões anônimas

Uniões anônimas são uniões que são declaradas sem o elemento class-name ou declarator-list.

union   {   member-list   }

Comentários

Essas declarações de união não declaram tipos — declaram objetos. Os nomes declarados em uma união anônima não podem estar em conflito com outros nomes declarados no mesmo escopo.

Em C, uma união anônima pode ter uma marca; não pode ter declaradores.

Os nomes declarados em uma união anônima são usados diretamente, como variáveis de não membro.

Além das restrições listadas em Dados de membro de união, uniões anônimas estão sujeitas às restrições adicionais:

  • Também devem ser declaradas como static se declaradas no escopo do arquivo. Se declaradas no escopo local, devem ser estáticas ou automáticas.

  • Podem ter somente membros públicos; os membros particulares e protegidos em uniões anônimas geram erros.

  • Não podem ter membros de função.

    Dica

    Somente omitir a parte class-name da sintaxe não torna a união anônima.Para que uma união se qualifique como anônima, a declaração não deve declarar um objeto.

Exemplo

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

Consulte também

Referência

Uniões