<br><br><div class="gmail_quote">2012/4/2 Steven Davidson <span dir="ltr"><<a href="mailto:srd4121@njit.edu">srd4121@njit.edu</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hola Asdrúbal,<div class="im"><br>
<br>
On 4/2/2012 2:11 PM, Asdrúbal Iván Suárez Rivera wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Excelente, he resuelto mi problema. He visto en muchos códigos fuente<br>
en donde existen funciones en las que se retorna una referencia. ¿A<br>
qué se debe esto?<br>
<br>
</blockquote>
<br></div>
Bueno, lo he mencionado en el correo-e anterior. Sirve para permitir "encadenar" invocaciones en una sola expresión. Por ejemplo,<br>
<br>
struct color<br>
{<br>
  float r,g,b;<br>
};<br>
<br>
color &color_combinar( color &res, const color &izq, const color &der, float fPorcentajeIzq )<br>
{<br>
  res.r = izq.r * fPorcentajeIzq + der.r * (1-fPorcentajeIzq);<br>
  res.g = izq.g * fPorcentajeIzq + der.g * (1-fPorcentajeIzq);<br>
  res.b = izq.b * fPorcentajeIzq + der.b * (1-fPorcentajeIzq);<br>
<br>
  return res;<br>
}<br>
<br>
color &color_exponencial( color &res, float fFactor )<br>
{<br>
  res.r *= fFactor;<br>
  res.g *= fFactor;<br>
  res.b *= fFactor;<br>
<br>
  return res;<br>
}<br>
<br></blockquote><div><br></div><div>Al hacer el quicksort me sigue dando error, pareciera una recursión infinita :( por la violación de segmento.</div><div><br></div><div>Mando el código para que vean.</div><div><br></div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
int main()<br>
{<br>
  color col = { 1, 0.5, 0 };<br>
  color gris = { 0.5, 0.5, 0.5 };<br>
<br>
  color res;<br>
  if( color_exponencial( color_combinar(res,col,gris,.<u></u>25), .1 ).r > col.r )<br>
    cout << "error" << endl;<br>
<br>
  return 0;<br>
}<br>
<br>
Si estas funciones no retornaren 'color &', entonces tendríamos que hacer cada invocación por separado. Esto es,<br>
<br>
void color_combinar( color &res, const color &izq, const color &der, float fPorcentajeIzq );<br>
void color_exponencial( color &res, float fFactor );<br>
<br>
int main()<br>
{<br>
  color col = { 1, 0.5, 0 };<br>
  color gris = { 0.5, 0.5, 0.5 };<br>
<br>
  color res;<br>
  color_combinar( res, col, gris, .25 );<br>
  color_exponencial( res, .1 );<br>
<br>
  if( res.r > col.r )<br>
    cout << "error" << endl;<br>
<br>
  return 0;<br>
}<br>
<br>
La ventaja de retornar el mismo objeto que estamso tratando, y que existe externamente, es que tenemos mayor flexibilidad. Podemos elegir invocar las funciones en una sola expresión, como en el primer ejemplo, o podemos elegir invocar cada función en diferentes sentencias, como en el segundo ejemplo. El problema de no retornar una referencia al mismo objeto es que sólo tenemos una opción: invocar cada función por separado, como en el segundo ejemplo.<div class="im">

<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Post Data: ¿Tienen un canal IRC?<br>
<br>
</blockquote>
<br></div>
No; no tenemos uno. No sé si crearemos uno en el futuro o no.<br>
<br>
<br>
Espero haber aclarado el tema.<div class="HOEnZb"><div class="h5"><br>
<br>
Steven<br>
<br>
<br>
______________________________<u></u>_________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/<u></u>mailman/listinfo/cconclase_<u></u>listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/<u></u>index.php?gid=2&mnu=FAQ</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Asdrúbal Iván Suárez Rivera<br></div><br><i>El éxito de alguien que enseña no es que sepa mucho, sino que lo poco que sabe lo sepa hacer llegar.</i><br>

<br>