But how do I declare it in a union so that my union variable can hold only one state at a time? For example, if my union is CurrentState, it can store only one enumeration out of showingMenu, showingOptions, showingHighscores, playing, quitting.
You kinda already have a class called states (enum GameState). Basically just make a variable in your gameStateManager like this: GameState currentState;