las referencias tienen una contra, que es que son constantes, apuntan siempre al mismo objeto.<div>si pasas un valor por referencia en el medio del codigo no podes hacer referencia = new....</div><div>si la funcion va a crear algo en el heap y ya estas usando el return para por ejemplo devolver un codigo de error las referencias no sirven.</div>

<div>pero para el resto son muy practicas.</div><div>David</div><div><br></div><div><br><br><div class="gmail_quote">El 13 de enero de 2010 17:30,  <span dir="ltr"><<a href="mailto:jferia@uci.cu">jferia@uci.cu</a>></span> escribió:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"> En mi opinión en C++ la mejor forma de pasar parámetros es hacerlo mediante<br>
 las referencias, una de las ventajas que tiene es que no permite que se pase<br>
 un parámetro con el valor null, otra es que dentro de la función se hace uso<br>
 de las variables de forma natural, sin necesidad del operador flecha, esto<br>
 permite olvidarse de si se están tratando una variable o una referencia.<br>
 Además a la hora de llamar la función no se necesita un tratamiento especial<br>
 como es el caso del operador & cuando se usan punteros.<br>
<br>
 Siempre y cuando no se necesite modificar el parámetro los más adecuado es<br>
 pasarlo como referencia constante, previniendo que en la función se<br>
 modifique el objeto asociado a la referencia.<br>
<br>
<br>
<br>
<br>
<br>
Vicent <<a href="mailto:vginer@gmail.com" target="_blank">vginer@gmail.com</a>> ha escrito:<div><div></div><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2010/1/12 Leonardo Boquillon <<a href="mailto:lboquillon@gmail.com" target="_blank">lboquillon@gmail.com</a>><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
en mi humilde opinión creo que ya python esta lo suficientemente<br>
documentado, mm no se es raro ver esto es como ir a un foro del real madrid<br>
pidiendo que se haga algo del barcelona [?]<br>
<br>
<br>
</blockquote>
<br>
Creí que "Conclase" era un foro sobre fútbol, no sobre el Real Madrid. Pero<br>
es cierto que estoy en el "subforo" sobre C y C++.<br>
<br>
<br>
En cualquier caso, lanzo una pregunta de novato sobre C++.<br>
<br>
Leyendo, he visto dos modos de pasar argumentos por referencia:<br>
<br>
(1)     void funcion1 ( int &parametro )  {<br>
              ... } ;<br>
<br>
(2)     void funcion1 ( int *parametro )  {<br>
              ... } ;<br>
<br>
En el caso (1),  "parametro"  es un entero pasado por referencia. En el<br>
cuerpo de la función, debería referirme a él como "parametro", y todos los<br>
cambios que experimente esa variable se verán reflejados en la variable<br>
correspondiente donde esté la llamada a "funcion1".   Por ejemplo, podría<br>
llamar a esta función así:  funcion(k) ; donde "k" es una variable tipo int,<br>
o bien  funcion(*pk),  donde  "pk" sería un puntero a una variable tipo<br>
"int".<br>
<br>
En el caso (2), "parametro" es un puntero a un entero (el puntero es pasado<br>
por valor, no por referencia; pero es una manera de pasar un entero por<br>
referencia). En el cuerpo de la función, debería referirme a ese entero como<br>
"*parametro", y todos los cambios que experimente el valor al que apunta el<br>
puntero "parametro" se verán reflejados en la variable correspondiente donde<br>
esté la llamada a "funcion1".   Por ejemplo, podría llamar a esta función<br>
así:  funcion(&k) ; donde "k" es una variable tipo int, o bien  funcion(pk),<br>
 donde  "pk" sería un puntero a una variable tipo "int".<br>
<br>
También me ha parecido leer que la sintaxis (1) es incorrecta en C, pero<br>
correcta en C++.<br>
<br>
¿Cuál de las dos formas es la más usual para pasar parámetros por referencia<br>
a una función? O bien, ¿en qué casos es recomendable/preferida cada una?<br>
¿Son equivalentes, o hay alguna diferencia que se me escapa?<br>
<br>
Gracias de antemano por vuestras respuestas.<br>
<br>
Un saludo.<br>
<br>
--<br>
Vicent<br>
<br>
</blockquote>
<br>
<br>
<br>
<br></div></div><div><div></div><div class="h5">
_______________________________________________<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/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br> (\__/) <br>(='.'=)This is Bunny. Copy and paste bunny into your <br>(")_(")signature to help him gain world domination. <br><br>
</div>