[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