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