[C con Clase] Duda

Oscar Aparicio Holgado pelucheloko en hotmail.com
Dom Dic 11 19:26:38 CET 2011


Ahora si ha quedado claro.

Gracias y un saludo.


> Date: Sat, 10 Dec 2011 00:13:27 +0100
> From: srd4121 en njit.edu
> To: cconclase en listas.conclase.net
> Subject: Re: [C con Clase] Duda
> 
> Hola Óscar,
> 
> 2011/12/9 Oscar <pelucheloko en hotmail.com>:
> > Imaginaba algo así, pero, al ver un swap antes del main, y uno después de
> > él, no me queda claro qué swap entra en juego ¿por qué el que está después
> 
> Creo que te refieres a esto:
> 
> void swap( int *x, int *y );
> 
> Esto es un prototipo, es como una declaración pero para una función.
> Por lo tanto, aquí no estamos invocando o llamando a esta función,
> simplemente le decimos al compilador que 'swap' es una función de este
> tipo: no retorna nada y acepta dos punteros como parámetros.
> 
> > de main? ¿es por que c++ hace una ejecución secuencial línea a línea?
> > (supongo que esta pregunta es muy novata :-))
> >
> 
> Ciertamente, C++ sigue secuencialmente lo que hay escrito en un
> fichero fuente. Sin embargo, el programa no realiza todos los pasos
> que aparecen, ya que el programa comienza desde la función 'main()'
> ejecutando sus líneas. En el caso de este programa, se ejecuta
> secuencialmente:
> 
> 1)    int x = 5, y = 10;
> 
> Definimos dos variables de tipo entero y las inicializamos.
> 
> 2)    std::cout << "Main. Before swap, x: " << x
>                 << " y: " << y << "\n";
> 
> Mostramos un mensaje en la pantalla
> 
> 3)    swap(&x, &y);
> 
> Invocamos a 'swap()' con dos parámetros, así que nos saltamos a la
> función 'swap()' según su definición:
> 
> 3.1)  int *px = &x;
> 3.2)  int *py = &y;
> 
> Copiamos los parámetros a sus respectivos parámetros locales a esta función
> 
> 3.3)    int temp;
> 
> Definimos una variable
> 
> 3.4)    std::cout << "Swap. Before swap, *px: " << *px
>                   << " *py: " << *py << "\n";
> 
> Mostramos un mensaje en la pantalla
> 
> 3.5)    temp = *px;
> 3.6)    *px = *py;
> 3.7)    *py = temp;
> 
> Realizamos diversas asignaciones
> 
> 3.8)    std::cout << "Swap. After swap, *px: " << *px
>                   << " *py: " << *py << "\n";
> 
> Terminamos la función y SIEMPRE retornamos a su punto de invocación o
> llamada. Como hemos terminado esta sentencia 3), continuamos:
> 
> 4)    std::cout << "Main. After swap, x: " << x
>                 << " y: " << y << "\n";
> 
> Mostramos un mensaje en la pantalla
> 
> 5)    return 0;
> 
> Terminamos 'main()' con el código 0 (cero), para indicar que todo ha
> ido correctamente.
> 
> > También observo que el swap después de main le siguen los {  bla bla bla }
> > que engloban acciones.
> >
> 
> Esto es porque hay que definir (o implementar) la función previamente
> declarada. De lo contrario, esta función no realizará ninguna tarea
> cuando se le invoque.
> 
> 
> Aconsejo que vuelvas a los primeros capítulos del curso de C++ para
> entender estas ideas fundamentales. Espero haber aclarado mucho más
> los detalles.
> 
> Steven
> 
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20111211/ec8fed1a/attachment.html>


Más información sobre la lista de distribución Cconclase