Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Yugget en 28 Junio 2014, 12:02 pm



Título: Uso de NameSpace
Publicado por: Yugget en 28 Junio 2014, 12:02 pm
Hola muy buenas,

Tengo una pequeña duda, y es la siguiente:

¿se puede usar todo los using namespace que desee?

Por ejemplo tengo este código:

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. namespace ciudad{
  6.    int calle;
  7. }
  8.  
  9. namespace pueblito{
  10.    int calle = 10;
  11. }
  12.  
  13. using namespace ciudad;
  14.  
  15. int main(){
  16. calle = 12;
  17. cout << pueblito::calle << endl;
  18. cout << calle << endl;
  19.  
  20. cin.get();
  21. return 0;
  22. }

Hay uso dos using namespace uno para el std y otro para los espacios de nombre... el programa funciona correctamente, solo quisiera saber si está bien si se puede poner más using namespace, yo opino que si ya que hay estoy usando 2 y no me da problemas pero no se si es bueno o malo.

Un cordial saludo!


Título: Re: Uso de NameSpace
Publicado por: NikNitro! en 28 Junio 2014, 12:24 pm
Pienso que mientras no tengan entre ellos conflictos...

Salud ;)


Título: Re: Uso de NameSpace
Publicado por: eferion en 28 Junio 2014, 16:51 pm
Puedes crear todos los namespace que desees... incluso estos namespace pueden estar repetidos en diferentes partes del código, incluso en distintos archivos (el nombre del namespace puede aparecer multiples veces, su contenido repetido no):

Código
  1. namespace prueba
  2. {
  3.  int elemento1 = 0;
  4. };
  5.  
  6. namespace prueba
  7. {
  8.  int elemento2 = 0;
  9. };
  10.  
  11. int main( )
  12. {
  13.  prueba::elemento1 = 2;
  14.  prueba::elemento2 = 4;
  15. }

Eso sí, ten cuidado con abusar de namespaces porque el código puede acabar ilegible... para el ejemplo que has puesto es mejor usar clases.