<div dir="ltr">Hola B.Amauri,<div class="gmail_extra"><br><div class="gmail_quote">2013/1/20 amauri d <span dir="ltr"><<a href="mailto:b_duhart@live.com.mx" target="_blank">b_duhart@live.com.mx</a>></span><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;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 style>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">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 style>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 style><br></div><div style>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 style>Espero haber aclarado la duda.</div><div><br>
</div><div style>Steven</div><div style><br></div></div></div></div>