Yes, Thank you, I mostly understand, But how do you use 1 class to contain 3 different logics for the update function? Its obvious I don't want to, lets say, button event from the menu screen to fire while in game. Do I simply create 3 childs of the parent gameState class, or is there a way to overload a class somehow?
Yes, you would want a separate class for each state, and each of those would be derived from a base class (e.g. GameState).
Btw, I am using C++ for this.
You may want to look into functors (also called "function objects", I believe). C++ is considerably less forgiving when it comes to type compatibility and memory management, so the solution above may not work without some significant adjustment. There should be some material on functors in the wiki here.
If any of the moderators could delete the post above I would be grateful, I didn't notice that I wasn't logged in at that time!