Hola a tod@s.<div><br></div><div>Sigo con el tema que ya planteé anteriormente de pasar argumentos por referencia.</div><div><br></div><div>He encontrado interesante la guía de estilo para C++ de Google, en la que justamente se habla de pasar por referencia usando "&" y poniendo "const" siempre que no queramos modificar el valor del parámetro (<a href="http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml?showone=Reference_Arguments#Reference_Arguments">http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml?showone=Reference_Arguments#Reference_Arguments</a>).</div>

<div><br></div><div>Por ejemplo:</div><div><br></div><div><b><font class="Apple-style-span" face="'courier new', monospace">mi_funcion(const int k , </font><font class="Apple-style-span" face="arial, helvetica, sans-serif"><span class="Apple-style-span" style="font-weight: normal;">[...]</span></font><font class="Apple-style-span" face="'courier new', monospace">) {</font></b></div>

<div><b><font class="Apple-style-span" face="'courier new', monospace">   <span class="Apple-style-span" style="font-weight: normal;"><font class="Apple-style-span" face="arial, helvetica, sans-serif"> [...]</font></span></font></b></div>

<div><b><font class="Apple-style-span" face="'courier new', monospace">}</font></b></div><div><br></div><div>Mi duda viene en el caso concreto de que el argumento que quiero pasar por referencia es un fichero (habitualmente se declara como  <b><font class="Apple-style-span" face="'courier new', monospace">FILE *fichero ;</font></b>)  en el cual quiero leer o escribir. Me surgen varias maneras de hacerlo:</div>

<div><br></div><div><br></div><div><u>ALTERNATIVA 1 (lo que me parece más lógico):</u></div><div><br></div><div><b><font class="Apple-style-span" face="'courier new', monospace">mi_funcion(const FILE *fichero<span class="Apple-style-span" style="font-family: arial; font-weight: normal; "><b><font class="Apple-style-span" face="'courier new', monospace"> , </font><font class="Apple-style-span" face="arial, helvetica, sans-serif"><span class="Apple-style-span" style="font-weight: normal; ">[...]</span></font><font class="Apple-style-span" face="'courier new', monospace">) {</font></b></span></font></b></div>

<div><b><font class="Apple-style-span" face="'courier new', monospace">   <span class="Apple-style-span" style="font-weight: normal; "><font class="Apple-style-span" face="arial, helvetica, sans-serif"> [...]</font></span></font></b></div>

<div><b><font class="Apple-style-span" face="'courier new', monospace">}</font></b></div><div><br></div><div><br></div><div><u>ALTERNATIVA 2 (siendo consistente con el caso general):</u></div><div><br></div><div>
<div>
<b><font class="Apple-style-span" face="'courier new', monospace">mi_funcion(const FILE &*fichero<span class="Apple-style-span" style="font-family: arial; font-weight: normal; "><b><font class="Apple-style-span" face="'courier new', monospace"> , </font><font class="Apple-style-span" face="arial, helvetica, sans-serif"><span class="Apple-style-span" style="font-weight: normal; ">[...]</span></font><font class="Apple-style-span" face="'courier new', monospace">) {</font></b></span></font></b></div>

<div><b><font class="Apple-style-span" face="'courier new', monospace">   <span class="Apple-style-span" style="font-weight: normal; "><font class="Apple-style-span" face="arial, helvetica, sans-serif"> [...]</font></span></font></b></div>

<div><font class="Apple-style-span" face="'courier new', monospace"><b><span class="Apple-style-span" style="font-family: arial; font-weight: normal; "><div><b><font class="Apple-style-span" face="'courier new', monospace">}</font></b></div>

<div><br></div><div><br></div><div><u>ALTERNATIVA 3 (si en la alternativa anterior se pueden/deben "cancelar" los "operadores"):</u></div><div><br></div><div><div><b><font class="Apple-style-span" face="'courier new', monospace">mi_funcion(const FILE fichero<span class="Apple-style-span" style="font-family: arial; font-weight: normal; "><b><font class="Apple-style-span" face="'courier new', monospace"> , </font><font class="Apple-style-span" face="arial, helvetica, sans-serif"><span class="Apple-style-span" style="font-weight: normal; ">[...]</span></font><font class="Apple-style-span" face="'courier new', monospace">) {</font></b></span></font></b></div>

<div><b><font class="Apple-style-span" face="'courier new', monospace">   <span class="Apple-style-span" style="font-weight: normal; "><font class="Apple-style-span" face="arial, helvetica, sans-serif"> [...]</font></span></font></b></div>

<div><font class="Apple-style-span" face="'courier new', monospace"><b><span class="Apple-style-span" style="font-family: arial; font-weight: normal; "><div><b><font class="Apple-style-span" face="'courier new', monospace">}</font></b></div>

<div><br></div><div><br></div><div>¿Cuál es la (más) correcta y/o la más lógica?</div><div><br></div><div>GRACIAS de antemano.</div><div><br></div><div>--</div><div>Vicent</div></span></b></font></div></div></span></b></font></div>

</div>