Can you clarify what you mean with "But for some reason if I don't include iostream that function is either skipped or the window is not drawn."
What is "window" for you? And what do you understand with "draw".
As Kojay pointed out, the issue is with the locally created render window. Since it only gets created locally in the Start() function, all the clear/display function will get applied to a none existing window, thus nothing gets shown. Not sure what you did that it seemed to be still not working, but changing from
sf::RenderWindow mainWindow(sf::VideoMode(800, 800), "Heros of Late - Extreme Pre Alpha");
to
mainWindow.create(sf::VideoMode(800, 800), "Heros of Late - Extreme Pre Alpha");
should resolve the issue.
Also use the constructor for initializing variables.