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