En todos nuestros cursos de C ++, todos los profesores siempre colocan using namespace std;
justo después de la #include
s en sus .h
archivos. 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 namespace
no 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 #include
todos los encabezados que .cpp
necesita su archivo correspondiente , solo aquellos que son necesarios para las definiciones de encabezado y dejar el .cpp
archivo #include
el 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 .h
archivos.
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 namespace
declaraciones, puede usar el nombre completo para resolver el problema.