I am making a game with c++ and sfml for the first time and I would like someone to review my current code before I advance and add more rooms/levels, any input is gratefully appreciated. I was also wondering if I should make a .cpp file for each of my class header files, or is it ok to just put my methods with the header files.

\$\begingroup\$Wow thanks a lot! This is exactly what I was looking for and thanks for taking your time to help me. Now I can clean this all up and feel good about moving forward, thanks!\$\endgroup\$
– DapperDanielFeb 23 '18 at 20:24

\$\begingroup\$Why use const char* if you could just go with std::string?\$\endgroup\$
– LukasFeb 24 '18 at 10:03

\$\begingroup\$@Lukas: We're not manipulating them at all, so we don't really gain anything from using std::string. When we pass them to loadFromFile we'd have to use c_str() to get a C-string anyway. Bottom line, in this specific case, std::string causes us extra work instead of saving any, so there's no real point.\$\endgroup\$
– Jerry CoffinFeb 24 '18 at 15:44

\$\begingroup\$@JerryCoffin That's not true. loadFromFile takes a std::string so there's no need to c_str(). Plus, if you ever wanted to do something useful with these strings or have them loaded dynamically, having things set to const char* will require you to change it everywhere it isn't implicitly casted. And if you really wanted that type, you could also go with const auto.\$\endgroup\$
– LukasFeb 24 '18 at 19:34

3. Don't use global variables

From Sprite.h:

bool show = true;

Besides I don't get the purpose of that variable, you shouldn't use global variables to control the behavior of your code. If You're sure that you'll need a static variable for that make it a class member variable.

Also you'll get problems (multiple definition errors), if you include the header in multiple translation units.