When you have a project with multiple tabs, the IDE performs some magic and merges all the files together, I do not know the exact details, however all the global declarations are "seen" by any file, regardless its name/loading order.
In order to keep things separate in the global scope, I use namespaces.
However, unlike global declarationbs, namespaces cannot be seen by files earlier in the loading order. Then the order matters, and for circular dependencies there are no easy solutions.
Is there a way to have namespaces and still be able to reference them from any file in my project?