Algunas de las reglas de arriba pueden parecer un poco desalentadoras al principio, especialmente si tiene la impresión de que las utilizará constantemente. No obstante, en general es posible arreglárselas con un uso muy sencillo de los espacios de nombres siempre y cuando comprenda cómo funcionan. La clave a recordar es que cuando introduce una directiva using global (mediante using namespace fuera de cualquier ámbito) usted ha abierto el espacio de nombres para ese fichero. Esto suele estar bien para un fichero de implementación (un fichero cpp) porque la directiva using sólo afecta hasta el final de la compilación de dicho fichero. Es decir, no afecta a ningún otro fichero, de forma que puede ajustar el control de los espacios de nombres fichero por fichero. Por ejemplo, si usted descubre un conflicto de nombres debido a que hay demasiadas directivas using en un fichero de implementación particular, es una cuestión simple cambiar dicho fichero para que use calificaciones explícitas o declaraciones using para eliminar el conflicto sin tener que modificar ningún otro fichero de implementación.
Los ficheros de cabecera ya son otra historia. Prácticamente nunca querrá introducir una directiva using global en un fichero de cabecera, puesto que eso significaría que cualquier otro fichero que incluyese la cabecera también tendría el espacio de nombres abierto (y un fichero de cabecera puede incluir otros ficheros de cabecera).
Por tanto, en los ficheros de cabecera debería utilizar o bien calificación explícita o bien directivas using de ámbito y declaraciones using. Éste es el método que encontrará en este libro. Siguiendo esta metodología no «contaminará» el espacio de nombres global, lo que implicaría volver al mundo pre-espacios de nombres de C++.