When you build your project there will usually be a window with the compiler output in the bottom. If you want to, you can read the sequence things happen out of there. However, that is not going to be relevant for your problem.
How does VS choose which CPP file comes next? Is it alphabetical?
It would really help to post the relevant code (for example where is characterclass actually defined) instead of screenshots as well as complete error messages.
Headers are irrelevant. The compiler only deals with .cpp files and an #include directive is just a convenient automatic way to paste the complete content of whatever file is referenced there. That happens during preprocessing before the compiler even sees it.
If there are 3 header files in a file, will it immediately do all of those headers next? I only have one header in each CPP file (the H file by the same name) but the headers may have 2 or 3.
The most likely issues are that you did not include the header which declares characterclass or your inclusion guard did not use a unique enough define. Note that using '#pragma once' instead of manual inclusion guards would solve this problem immediately and is available on all three compilers an average person is likely to encounter (MSVC, gcc and clang).
On a more serious note, avoid 'using namespace' directives in headers. If you really need to, do that in implementation files or at function scope.