En todos nuestros cursos de C ++, todos los profesores siempre colocan using namespace std;justo después de la #includes en sus .harchivos. Esto me parece peligroso, ya que al incluir ese encabezado en otro programa, obtendré el espacio de nombres importado a mi programa, tal vez sin darme cuenta, tener la intención o quererlo (la inclusión del encabezado puede estar muy profundamente anidada).
Entonces, mi pregunta es doble: ¿tengo razón en que using namespaceno debería usarse en archivos de encabezado, y / o hay alguna forma de deshacerlo, algo como:
//header.h
using namespace std {
.
.
.
}
Una pregunta más en la misma línea: ¿Debería un encabezado archivar #includetodos los encabezados que .cppnecesita su archivo correspondiente , solo aquellos que son necesarios para las definiciones de encabezado y dejar el .cpparchivo #includeel resto, o ninguno y declarar todo lo que necesita extern?
El razonamiento detrás de la pregunta es el mismo que el anterior: no quiero sorpresas al incluir .harchivos.
Además, si estoy en lo cierto, ¿es este un error común? Me refiero a la programación del mundo real y a los proyectos "reales" que existen.
Gracias.
using namespacedeclaraciones, puede usar el nombre completo para resolver el problema.