But I do understand OOP. I just don't understand the syntax to store objects in the list and have that list/screen-class then 'create' that object as an instance, and then how to safely destroy everything.
Surely it can't be that hard..
It may not be hard to do but it'd require a lot of explaining and code examples which many people don't have the time to provide.
After reading the OP, I might be wrong with this, I believe you want to create a state manager like system to handle changing from state to state. The one that eXpl0it3r created and linked in his post is a perfect example. You have a superclass that will contain all the methods and variables required for each state. Such as, draw, update, init etc.
You then can create child classes of the superclass and create override methods of each method you might require. Inside these child classes would be information related to each state, entites, logic etc.
You could then do for example.
MainGame game;
MainMenu menu;
statemanager.addState(game);
statemanager.addState(menu);
stateManager.changeState(GameState::type::MainGame);
I'm no where near the best C++ programmer on this website but I hope my explanation helps you understand what you need to create. If it still doesn't, go look at the example eXpl0it3r posted.