Unions in C++

C++ has a structure that allows us to have different types of data within the same variable. A union is particularly memory efficient as it calculates the minimum amount of memory to store the largest element in the structure. Therefore, contained data overlaps in memory.

 #include <iostream>
 using namespace std;

 union StudentID {
      char* byName;    // memory for a pointer OR 
      int byNumber;    // memory for an int
 };

 int main()
 {
    StudentID s;
    s.byNumber = 12345;
    cout << s.byNumber << endl;	//outputs 12345
    s.byName = "Hello";
    cout << s.byName << endl;   //outputs Hello
    cout << s.byNumber << endl; //outputs 4198928
 }