[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