[C con Clase] DUDA CONTENEDOR

David fire ddfire en gmail.com
Mar Jun 23 20:31:21 CEST 2009


pasar a traves de referencia o punteros hace que no haga falta copiar el
objeto.
mas velocidad y menos memoria.
David

El 23 de junio de 2009 15:27, Steven Davidson <srd4121 en njit.edu> escribió:

> Hola Pedro,
>
> Pedro Rodríguez González wrote:
>
>> Gracias David y gracias a Steve...
>>
>> FUNCIONA SIN PROBLEMAS!!!
>>
>>
> De nada; para eso estamos :)
>
>  MiContenedor Lista()
>> {
>>   MiContenedor MC;
>>   ...
>>   return MC;
>> }
>> ...
>> pero y si quisiera que me devolviera una referencia sin pasarle un
>> argumento
>> ...
>>  MiContenedor& Lista( /* MiContenedor &MC */ )
>>  {
>>    ...
>>    return MC;
>>  }
>>
>>
> Lo único que serviría es que tal objeto exista fuera de la función. Esto
> sería, si el objeto es global o si creamos memoria dinámicamente. Por
> ejemplo,
>
> // Global
> MiContenedor MC;
>
> MiContenedor& Lista()
> {
>  ...
>  return MC;
> }
>
> Claro que si hacemos esto, no hay necesidad de retornar nada, porque 'MC'
> es global.
>
>
> Con la otra opción, tenemos lo siguiente:
>
> MiContenedor& Lista()
> {
>  MiContenedor *pMC = new MiContenedor;
>  ...
>  return *pMC;
> }
>
> Con esto último, tenemos que liberar la memoria en algún momento de nuestro
> programa. Ninguno de estos casos es recomendable.
>
>  ...
>> ...
>> Queda otra opción, alguna idea? de todas formas escapo con ese arreglo...
>> pero lo ideal sería lo segundo propuesto
>>
>>
> No veo por qué dices que es ideal retornar una referencia a un objeto. En
> C++, nos es igual tratar un objeto directamente que a través de una
> referencia. Recuerda que una referencia no es más que otro nombre
> alternativo - un sobrenombre. Esto significa que el objeto debe existir en
> alguna parte.
>
> Ahora bien, si requieres polimorfismo, entonces debes tratar los objetos a
> través de una referencia o de un puntero. Pero sospecho que esto no es el
> caso.
>
>
> Espero haber aclarado el tema.
>
>
> Steven
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



-- 
(\__/)
(='.'=)This is Bunny. Copy and paste bunny into your
(")_(")signature to help him gain world domination.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090623/a84429c2/attachment.html>


Más información sobre la lista de distribución Cconclase