Compartir a través de


Uniones

union es los datos o un tipo de clase definida por el usuario que, en un momento dado, solo contienen un objeto de la lista de miembros (aunque ese objeto puede ser una matriz o un tipo de clase).

union [tag] { member-list } [declarators];
[union] tag declarators;

Parámetros

  • tag
    El nombre de tipo especificado en la combinación.

  • member-list
    Lista de los tipos de datos que la combinación puede contener.Vea la sección Comentarios.

  • declarators
    El declarador muestra especificar los nombres de unión.Para obtener más información, consulte Información general de Declarators.

Comentarios

La lista de miembros de una unión representa las clases de datos que la combinación puede contener.Una unión requiere suficiente memoria almacenar el miembro más grande de la lista de miembros.Para obtener más información, vea la Declaraciones de unión (referencia de lenguaje-c).

declarar una unión

Comience la declaración de una combinación con la palabra clave join, y agrega la lista de miembros en entre llaves:

// declaring_a_union.cpp
union DATATYPE    // Declare union type
{
    char   ch;
    int    i;
    long   l;
    float  f;
    double d;
} var1;          // Optional declaration of union variable

int main()
{
}

Mediante una combinación

Unión de C++. es un formulario limitado de tipo de clase.Puede contener los especificadores de acceso (public, protected, private), los datos de miembros, y las funciones miembro, incluidos constructores y destructores.No puede contener funciones virtuales o miembros de datos estáticos.No puede utilizarse como clase base, o no puede tener clases base.el acceso predeterminado de miembros en una unión es público.

El tipo de unión de C/C++. sólo puede contener miembros de datos.

En c, debe utilizar la palabra clave de union para declarar una variable de unión.en C++, la palabra clave de union es innecesaria:

union DATATYPE var2;   // C declaration of a union variable
DATATYPE var3;         // C++ declaration of a union variable

Una variable de un tipo de unión puede contener un valor de cualquier tipo declarado en la combinación.Utilice el operador miembro-selección (.) para tener acceso a un miembro de una unión:

var1.i = 6;           // Use variable as integer
var2.d = 5.327;       // Use variable as double 

Puede declarar e inicializar una combinación en la misma instrucción asignando una expresión entre llaves.La expresión se evalúa y se asigna al primer campo de unión.

Ejemplo

// using_a_union.cpp
#include <stdio.h>

union NumericType
{
    int         iValue;
    long        lValue;  
    double      dValue;  
};

int main()
{
    union NumericType Values = { 10 };   // iValue = 10
    printf_s("%d\n", Values.iValue);
    Values.dValue = 3.1416;
    printf_s("%f\n", Values.dValue);
}

Output

10
3.141600

La combinación de NumericType se organiza en memoria (conceptual) como se muestra en la ilustración siguiente.

Almacenamiento de datos en la combinación de NumericType

Almacenamiento de datos de unión de tipo numérico

Vea también

Referencia

Clases, estructuras, uniones y

Palabras clave de C++

Uniones anónimas

clase (C++)

struct (C++)