Hello. Okay so let me just explain my class setup real quick.
Screen with a virtual Destruct, Construct, Draw, Update functions. (Please not the function Destruct and Construct are not Screen() and ~Screen() and are implemented.)
Screen also has SetBase(Engine *base); to get the base functions.
ScreenManager which has a map of screen pointers. Screens are added for e.g.
sm->AddScreen("menu", new MenuScreen()); //ScreenManager also deletes them...
ImageManager which creates and deletes sf::Image.
So the engine dynamically loads image manager then screen manager.
So for example if my class Engine destruct deletes ImageManager then ScreenManager it all works fine. But if i do it the other way because it seems more logical I get a memory heap. I think ive pin pointed it down to sf::Sprite in MenuScreen. It uses a pointer from the image manager but nothing else is called (or is it...). So to remove this heap i have to
background = sf::Sprite();
Any suggestions? Im guessing it has to do with image pointers...
p.s. Sorry if you don't understand this i can post code if needed to help. Me translating code in English isn't that well lol.