Originally Posted by
laserlight
Imagine if you are using a library written by someone else. The library interface might have names (of functions, classes, etc, not necessarily just variables) that make sense for your project, so you use them too, but for your own purposes. The solution here is for the library to have the names in the library's namespace, and your project's names are in your namespace. This way, the names can be used unqualified within the appropriate context, and qualified (with the scope resolution operator coming into play) as needed.