You have to mentally separate out the files from the classes. One file can equal ten classes, or one class can be distributed between ten classes.
I can name a file Aardvark.cpp, and it can actually contain a class called something entirely different.
File names don't matter. Only the code they contain matters.
In C++, some limited inheritance is acceptable, but you don't want to go crazy with it. If you're a beginner, and a class is inheriting more than one class, you're likely doing something wrong (unless you are using an architecture designed by non-beginners that requires you to inherit stuff). Most classes shouldn't inherit anything (depending on the nature of the overall architecture - if you are a beginner, most classes shouldn't inherit anything). Those that do inherit another class usually shouldn't inherit more than one other class, IMO.
Why would Main inherit from Game? Why would Game inherit from SceneManager, or vise-versa? It wouldn't be good code architecture.
As for your question about scene managers, I don't have personal experience with them so others can answer that who actually do have experience in that area.
Then how would I link the classes together? Including them?
Then how do I link classes together? Just including? And if I do that won't my game loop class get huge? Everytime I added something I'd have to add it to it.