Algunas de las reglas de arriba pueden parecer un poco
desalentadoras al principio, especialmente si tiene la impresión
que las utilizará constantemente. No obstante, en general es
posible salir airoso con el uso de espacios de nombres
fácilmente siempre y cuando comprenda como funcionan. La clave a
recordar es que cuando introduce una directiva using
global (vía
"using namespace" fuera de cualquier rango) usted ha abierto el
espacio de nombres para ese archivo. Esto suele estar bien para
un archivo de implementación (un archivo "cpp") porque la
directiva using
sólo afecta hasta el final de la compilación de
dicho archivo. Es decir, no afecta a ningún otro archivo, de
forma que puede ajustar el control de los espacios de nombres
archivo por archivo. Por ejemplo, si usted descubre un cruce de
nombres debido a que hay demasiadas directivas using
en un
archivo de implementación particular, es una cuestión simple
cambiar dicho archivo para que use calificaciones explícitas o
declaraciones using
para eliminar el cruce sin tener que
modificar ningún otro archivo 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 archivo que incluyese la cabecera también
tendría el espacio de nombres desplegado (y un fichero de
cabecera puede incluir otros ficheros de cabecera).
Por tanto, en los ficheros de cabecera debería utilizar o bien
cualificació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, que
implicaría volver al mundo pre-espacios de nombres de C++.