May 2003
Intermediate to advanced
808 pages
32h 24m
English
union keyword — Declares a union
class-key := unionThe union keyword declares an
aggregate type, similar to a struct, but the union object can store only
one member at a time. The storage for all members overlaps. A union
can have member functions (including constructors and destructors) but
not virtual member functions. A union cannot be or have a base class.
Union members cannot be static or references. Data members cannot have
constructors, a destructor, copy-assignment operators, virtual
functions, or virtual base classes. An initializer for a union can
initialize only its first member.
See class for the syntax
rules.
enum kind { integer, real, text };
struct data {
kind data_kind;
data(int i) : data_kind(integer), integerval(i) {}
data(double d) : data_kind(real), realval(d) {}union {
int integerval;
double realval;
};
};