elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda de principiante
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda de principiante  (Leído 2,428 veces)
Sputnik_

Desconectado Desconectado

Mensajes: 80



Ver Perfil
Duda de principiante
« en: 28 Noviembre 2012, 15:34 pm »

Hola, me estoy introduciendo a C++ y no comprendo bien esto, estoy siguiendo los vídeo tutoriales de OutKast  (junto al libro de deitel) y por ejemplo en este programa puso
(02.-CUrso de Videotutoriales C++. Análisis de un Programa ):

Código
  1. #include <iostream>
  2.  
  3. int main()
  4. {
  5. std::cout << "SALUDOS" ;
  6. return 0;
  7. }

A el parece correrlo bien, pero usa visual c++ 6.0, en mis compiladores que utilizo no me permite, sino que tengo que agregarle
Código
  1. using namespace std;
, por que es eso? y cuando se tiene que usar o no el endl ? porque yo si lo uso o no, me muestra lo mismo, y la librería <stdlib.h> es lo mismo poner <cstdlib> ?

Saludos , y desde ya muchas gracias


En línea

Las personas lo suficientemente locas como para pensar que pueden cambiar el mundo son las que lo cambian.
febef

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Re: Duda de principiante
« Respuesta #1 en: 28 Noviembre 2012, 15:58 pm »

Hola ZombieKiller96

  - Una de las características de C++  es el encapsulamiento.
    
    Esto es podemos -encapsular, en un espacio, código para usar unos nombres de de funciones y en otro espacio los podemos volver a definir sin que se "crucen". Aunque más que nada sirve para mantener ordenadas las distintas partes de las librerías o los conjuntos de las mismas etc.

    Cada vez que se quiere usar alguna función que encapsulada en estos espacios hay que llamarla con una referencia a ellos, ejemplo:

Código
  1. std::cout << "blabla" << std::endl;


    Aunque si vamos a hacer uso frecuente de estas funciones, constantes, variables, etc. ponemos después de incluir las librerías que vamos a hacer uso de ese espacio, ejemplo:

Código
  1. using namespace std;

    De esta forma no hay que poner la referencia a el nombre de espacio, std::*, cada vez que llamamos a funciones de él mismo como cout, cin, endl, etc. Si no solo llamarlas.

    El código quedaría de la siguiente forma:
Código
  1. cout << "blabla" << endl;

  - El uso de endl depende de lo que quieras hacer, lo que hace es poner el retorno de carro y salto de linea. Si no lo pones y enviás con cout otra cadena esta saldrá seguida de la anterior, "en el mismo renglón". En cambio poniéndolo la próxima vez que mandes una cadena saldrá en un "nuevo renglón".
    
  - Con el tema de las librerías todas las estándares de C están en C++ y pueden ser incluidas con su nombre original o sino también C++ las suele nombrar quintando le la extensión ".h" y agregando una c en el comienzo.

Espero haber ayudado. Y aconsejo q leas un librito del tema.









« Última modificación: 28 Noviembre 2012, 16:01 pm por fex » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Duda de principiante
« Respuesta #2 en: 28 Noviembre 2012, 16:10 pm »

en mis compiladores que utilizo no me permite, sino que tengo que agregarle
Código
  1. using namespace std;
, por que es eso?
No debería.

Cuando utilizas la biblioteca estándar de C++ e incluyes alguna facilidad de esta, por ejemplo:
Código
  1. #include <iostream>
Todos los nombres se colocan en el nombres de espacios estándar "std". Eso para evitar un conflicto con los objetos que tu declaras en el programa.

Para acceder a ellos (los de la biblioteca estándar) hay tres formas:

1) Indicando de forma explicita el nombre de espacios donde se encuentran con el operador de ámbito "::", por ejemplo:
Código
  1. #include <iostream>
  2.  
  3. int main()
  4. {
  5.   std::cout << "hola, mundo" << std::endl;
  6.  
  7.   return 0;
  8. }

2) Agregando todo el contenido del nombre de espacios "std" al nombre de espacios global:
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.   cout << "hola, mundo" << endl;
  8.  
  9.   return 0;
  10. }

3) Agregando solo lo necesario al nombre de espacios global con una sentencia "using", por ejemplo:
Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::endl;
  4.  
  5. int main()
  6. {
  7.   cout << "hola, mundo" << endl;
  8.  
  9.   return 0;
  10. }

y cuando se tiene que usar o no el endl ?
Si apenas empiezas asegúrate que cada linea que envíes a la salida estándar termine con el carácter de avance de linea. Las razones (bufer de la salida estándar y cuando este se vacía explicita o implícitamente) supongo lo veras mas adelante.

y la librería <stdlib.h> es lo mismo poner <cstdlib> ?
No. El nombre correcto en C++ es <cstdlib>.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Sputnik_

Desconectado Desconectado

Mensajes: 80



Ver Perfil
Re: Duda de principiante
« Respuesta #3 en: 28 Noviembre 2012, 16:23 pm »

Muchas gracias por las respuestas, ya ahora comprendo todo bien, hice andar finalmente el programa y por ahora me quedo sin dudas, muchas gracias por tomarse el trabajo de contestarme,
saludos!  ;)
En línea

Las personas lo suficientemente locas como para pensar que pueden cambiar el mundo son las que lo cambian.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda de principiante
PHP
poltron 4 3,164 Último mensaje 20 Febrero 2010, 12:18 pm
por poltron
Duda programa principiante C
Programación C/C++
Adri124 5 2,923 Último mensaje 14 Junio 2010, 16:51 pm
por Adri124
Duda de Super Principiante « 1 2 3 4 »
Programación C/C++
Allitnam2004 30 12,690 Último mensaje 5 Enero 2011, 22:11 pm
por leogtz
Duda de principiante, trampa en votos por usuario
Dudas Generales
yankiepr 4 2,565 Último mensaje 8 Mayo 2014, 19:59 pm
por yankiepr
Duda para ejercicio en C (principiante)
Programación C/C++
santibarquero98 2 1,904 Último mensaje 19 Mayo 2015, 21:59 pm
por Seyro97
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines