Retroceder   Foros del Web > Temas generales de computación > Programación > C/C++

Respuesta
 
Herramientas Desplegado
Antiguo 12-jul-2007, 10:57   #1 (permalink)
-thor- ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2006
Mensajes: 229
Que ventajas tiene la sobrecarga de operadores?

Se programar en c y ahora estoy leyendo un manual de c++(el que esta en c con clase),bueno el manual lo lei,la sobrecarga de funciones la entendi,pero aun no logro entender bien el uso de la sobrecarga de operadores.

Que ventajas trae el usar sobrecarga de operadores y en que tipo de problemas es necesario ocupar la sobrecarga?

Gracias
-thor- está desconectado   Responder Citando
Antiguo 12-jul-2007, 11:57   #2 (permalink)
_Lucifer_ tiene algunos puntos positivos de karma
 
Avatar de _Lucifer_
 
Fecha de Ingreso: junio-2006
Mensajes: 1.588
Re: Que ventajas tiene la sobrecarga de operadores?

La ventaja depende del problema. Hay problemas en los que puedes ahorrarte mucho trabajo usando la sobrecarga de operadores.

Por poner un ejemplo sencillo, imagina que hiciste una clase para el manejo de matrices, ahora quieres sumar 2 matrices y almacenarlo en una tercera. Lo primero que se puede hacer es un par de ciclos for anidados e ir sumando elemento mas elemento.

Con la sobrecarga de operadores (suponiendo que sobrecargaste el operador "=" y el "+") solo tendrías que hacer: c=a+b; que en el fondo tendrían el par de ciclos, pero así es más fácil de leer y agregas nuevas funcionalidades.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
_Lucifer_ está desconectado   Responder Citando
Antiguo 12-jul-2007, 16:01   #3 (permalink)
Instru está en el buen camino
 
Avatar de Instru
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.439
Re: Que ventajas tiene la sobrecarga de operadores?

Cita:
Iniciado por -thor- Ver Mensaje
Se programar en c y ahora estoy leyendo un manual de c++(el que esta en c con clase),bueno el manual lo lei,la sobrecarga de funciones la entendi,pero aun no logro entender bien el uso de la sobrecarga de operadores.

Que ventajas trae el usar sobrecarga de operadores y en que tipo de problemas es necesario ocupar la sobrecarga?

Gracias
Te voy a poner otro ejemplo real para que veas la utilidad.

Imagina que no tienes la clase string, o simplemente que tu la quiere implementar de manera distinta.
Si alguna vez manejaste lenguajes de script como Javascript o actionscript o cosas asi, podras recordar que podías hacer algo asi:

string variable="Hola "+ nombre + ", como estas";

Pues bien sabras que ni en C ni C++ puedes hacer semejante cosa asi nadamas.

Tendrias que tener una clase string(o como la quieras llamar), sobrecargar el operador "+" y el operador "=" para poder obtener el mismo resultado.

En cuanto a clases, es realmente muy util para poder llenar todos los campos que necesites con tan solo usar un operador.
O incluso como lo he trabajo ahora yo, con el operador de indexacion "[]", que lo utilizo para sacar y meter informacion a un array dentro de mi clase pero con un filtrado de datos.

Saludos
__________________
Usa las putas faqs:
http://www.forosdelweb.com/showthread.php?t=264647
Instru está desconectado   Responder Citando
Antiguo 12-jul-2007, 16:15   #4 (permalink)
(Desactivado)
Developer9 Developer9
 
Avatar de Developer9
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.202
Enviar un mensaje por MSN a Developer9
Re: Que ventajas tiene la sobrecarga de operadores?

Eje!! y eso que no has intentado "sobrecargar" el <<

Es muy "amistoso"
Developer9 está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 16:39.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93