You can remove a lot of new/delete usage from your classes, e.g.
Global(SDL_Window& window, SDL_Renderer& renderer, Logger& logger)
, screen(window, renderer)
, gfx(window, renderer, logger)
This is exactly equivalent to your original code, but removes the need for you to remember to write a destructor that deletes everything (and the chance that you'll forget to add a matching delete for every new)... The member variables will be constructed automatically when a Global object is constructed, and will be destructed automatically when that object is destructed.
You're also not following the rule of three -- if your class has a destructor, then it must also have a copy constructor and an assignment operator (the above re-write avoids all this hassle by just not having an explicit destructor ).
Edited by Hodgman, 23 April 2014 - 07:00 AM.