In many other languages the default level of access for a class/struct and members is within the namespace scope, with public
indicating that it is accessible outside of that namespace (or package, or library, or whatever they call their namespaces.)
In C++ I see I have the options public
which makes it visible everywhere, private
which is only for the class, and protected
which is for this class and nested classes.
What about for only this namespace? That's often useful if you're writing a library that can access its own classes and their members, whilst restricting access by importing files.