Unions and Classes in C++
January 14, 2021
C++ also supports unions as in C. They are functionally similar to that of a class but has the following limitations:
- All members are public by default
- Cannot be a base class to inherit other classes
- Cannot have virtual functions
- Cannot include static variable
- An object using a constructor and destructor cannot be a member of a union
One of the advantages of using Unions is that all data elements share the same memory. So they are commonly used when we require that the variables share a common memory. An example usage of union is shown below –
#include <iostreams.h>
main(){
Union{
int i;
const char* name;
};
i = 21;
name = "Tony";
cout << "Name:" << name << " Age:" << i << "year";
}
The above is an example of Anonymous Union without a type name. This could not include member functions, private or protected regions as with usual union and if declared globally, it must be static.