◄Example► ◄Up► ◄Contents► ◄Index► ◄Back► ─────C/C++ Language───────────────────────────────────────────────────────── Keyword: union Syntax: union [tag] {member-list} [declarators]; [union] tag declarators; Summary: Declares a union type and/or a variable of a union type. See: ◄Anonymous Unions► See also: class, struct A union is a user-defined data type that can hold values of different types at different times. It is similar to a structure except that all of its members start at the same location in memory. A union variable can contain only one of its members at a time. The size of the union is at least the size of the largest member. A C++ union is a limited form of the class type. It can contain access specifiers (public, protected, private), member data, and member functions, including constructors, and destructors. It cannot contain virtual functions or static data members. It cannot be used as a base class, nor can it have base classes. Default access of members in a union is public. A C union type can contain only data members. Declaring a Union Begin the declaration of a union with the union keyword, and enclose the member list in curly braces: union UNKNOWN // Declare union type { char ch; int i; long l; float f; double d; } var1; // Optional declaration of union variable In C, you must use the union keyword to declare a union variable. In C++, the union keyword is unnecessary: union UNKNOWN var2; // C declaration of a union variable UNKNOWN var3; // C++ declaration of a union variable Using a Union A variable of a union type can hold one value of any type declared in the union. Use the dot operator (.) to access a member of a union: var1.i = 6; // Use variable as integer var2.d = 5.327; // Use variable as double -♦-