2011-03-17 18 views
13

¿Para qué se usa el espacio de nombres, en C++?¿Para qué se usa el espacio de nombres en C++?

using namespace std; 
+3

posible duplicado de [¿Cuál es el propósito de: "using namespace"?] (Http://stackoverflow.com/questions/4359706/whats-the-purpose-of-using-namespace) –

+1

El caso general de ' usando namespace XXX; ', mira las respuestas a continuación. Para el caso específico de 'using namespace std;', recomiendo que nunca haga eso. La importación de todo el espacio de nombres 'std' puede causar demasiados problemas. http://www.parashift.com/c++-faq-lite/coding-standards.html#faq-27.5 –

Respuesta

33

El espacio de nombre se utiliza para evitar conflictos de nombres.

Por ejemplo:

namespace foo { 
    class bar { 
     //define it 
    }; 
} 

namespace baz { 
    class bar { 
     // define it 
    }; 
} 

Ahora tiene dos clases de barras nombre, que son completamente diferentes y separados gracias a la namespacing.

El "uso del espacio de nombres" que muestra es para que no tenga que especificar el espacio de nombres para usar clases dentro de ese espacio de nombres. es decir, std :: string se convierte en cadena.

2

Se utiliza para evitar confusiones de nombres, por lo que puede tener dos clases con el mismo nombre en diferentes espacios de nombres.

También se utiliza para categorizar sus clases, si ha visto el .NET Framework, verá que los espacios de nombres se utilizan para categorizar las clases. Por ejemplo, puede definir un espacio de nombres para las clases de empleados, y un espacio de nombres para las clases de tareas, y ambos espacios de nombres están dentro de un espacio de nombres para las clases de compañía, ya que un espacio de nombres puede contener espacios de nombres secundarios.

El mismo espacio de nombres puede existir en diferentes archivos, por lo que using puede ser útil porque le permitirá usar directamente todas las clases en los espacios de nombres en cada archivo #include d.

Eso es lo que recuerdo por el momento.

1

Uno podría preguntar, simple par de llaves {} son suficientes para resolver el conflicto de nombre. Aún así, ¿por qué tener un NameSpace? Una respuesta rápida como Tamer mencionó anteriormente es que con NameSpace tenemos la capacidad de abrir el mismo alcance en otro archivo.

Cuestiones relacionadas