<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>