<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Gracias, B.Amauri.<br><br><br><div><div id="SkyDrivePlaceholder"></div><hr id="stopSpelling">Date: Sun, 20 Jan 2013 21:35:14 -0500<br>From: srd4121@njit.edu<br>To: cconclase@listas.conclase.net<br>Subject: Re: [C con Clase] Funciones<br><br><div dir="ltr">Hola B.Amauri,<div class="ecxgmail_extra"><br><div class="ecxgmail_quote">2013/1/20 amauri d <span dir="ltr"><<a href="mailto:b_duhart@live.com.mx">b_duhart@live.com.mx</a>></span><br><blockquote class="ecxgmail_quote" style="border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">



<div><div dir="ltr">¡Hola! Yo de nuevo, esta vez preguntando acerca de funciones y uniones, es decir, constructores.<br>En el capítulo 16, en el problema 16.3, introducen un constructor como el siguiente:<br><pre><span>union</span> ejemplo {
    <span>int</span> x;
    <span>double</span> d;
    <span>char</span> cad[8];
    <font style="font-size:16pt" size="4">ejemplo(</font><font style="font-size:16pt" size="4"><span>int</span></font><font style="font-size:16pt" size="4"> i) : x(i) {}
    ejemplo(</font><font style="font-size:16pt" size="4"><span>double</span></font><font style="font-size:16pt" size="4"> n) : d(n) {}</font>
    ejemplo(<span>const</span> <span>char</span> *c) {
        strncpy(cad, c, 7);
        cad[7] = 0;
    } 
};</pre>Pero, si bien he prestado atención, aún no explicaban qué es esto. <br>Entiendo que "func (tipo identificador) : variable(identificador) {}" asigna el parámetro de la función a la variable, pero ¿por qué?<br>
<br></div></div></blockquote><div><br></div><div>Bueno, hemos explicado un poco acerca de constructores en el capítulo 11 ( <a href="http://c.conclase.net/curso/index.php?cap=011#STR_funciones" target="_blank">http://c.conclase.net/curso/index.php?cap=011#STR_funciones</a> ), pero ciertamente no hemos visto la lista inicializadora: lo que existe entre los dos puntos y la apertura de llave. Si lo prefieres, podemos reescribir lo anterior así:<br>
<br><div>ejemplo( int i )<br>{<br>  x = i;<br>}</div><div><br></div><div>ejemplo( double n )<br><div>{<br>  d = n;<br>}</div></div><div><br></div></div><div><br></div><div>La idea tras el constructor es que sirva para preparar cualquier variable (u objeto) para su uso. En genereal, esto implica que la variable debe comenzar en un estado "correcto". Típicamente, lo que uno hace es guardar valores iniciales en los campos o miembros de tal estructura.</div>
<div><br></div><div>Veremos más acerca del tema de constructores cuando lleguemos a la POO, a partir del capítulo 27.</div><div><br></div><div><br></div><div>Espero haber aclarado la duda.</div><div><br>
</div><div>Steven</div><div><br></div></div></div></div>
<br>_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ</div>                                         </div></body>
</html>