![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Para mi siempre ha sido algo natural la sobrecarga de operadores que uso bastante, ahorrándome código y proporcionando limpieza e intuición al código. Estoy hablando de C++
Siempre lo he echado en falta en delphi. Saludos. |
|
#2
|
||||
|
||||
|
En C++ o los lenguajes con recoleccion de basura es seguro tener operadores de clase.
En Delphi que no es necesariamente el caso, puede haber muchas fugas de memoria, y creo que ese es el motivo por el cual no tenemos a nuestra disposicion sobrecarga de operadores. Al menos no para el compilador para Windows; los que implementan ARC, como señalo Al, si que permiten la sobrecarga Los record son un caso especial porque Delphi se encarga de manejar la memoria por nosotros y entonces no hay problema A mi tambien siempre me hacian mucha falta en Delphi.. seria muy bueno poder tener esta sintaxis de manera oficial, por lo menos en interfaces que si implementan el mecanismo de contador de referencias Otro detalle es que no necesariamente hay que usar un ayudante de clase como esta mas arriba. Es posible utilizar una subclase para lograr el mismo efecto; o tambien el viejo truco de la clase interpuesta
|
|
#3
|
||||
|
||||
|
Hablando de estas cosas, yo sueño con el día en que pueda escribir en Delphi "expresiones de asignación" como
en lugar de que suelo escribir en lugar de
Un abrazo esperanzador. ![]() Al González. Última edición por Al González fecha: 29-11-2016 a las 19:15:47. |
|
#4
|
||||
|
||||
|
Cita:
![]() LineComment Saludos |
|
#5
|
||||
|
||||
|
Cita:
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#6
|
||||
|
||||
|
Cita:
![]() |
|
#7
|
||||
|
||||
|
Eso lo sé, pero pensé que tú no
![]() Pero ya en serio, me causa curiosidad el uso que deseas, quizá por no tener contexto. En lo particular, esa característica (que la asignación sea un operador) casi sólo la uso para ciclos en los que obtengo y uso un dato: Código:
/* DameRegistro devuelve el siguiente registro o FALSE si no hay más registros */ WHILE registro = DameOtro() DO BEGIN MuestraRegistro(registro) END LineComment Saludos |
|
#8
|
||||
|
||||
|
Cita:
![]() Hoy estuve trabajando con cierto método que quizá sirva de ejemplo: Con "asignaciones expresivas" (por llamarles de algún modo) esa primera parte se reduciría un poco:
Saludos. |
|
#9
|
||||
|
||||
|
Cita:
![]() Y si no, ¿por qué en C++ sí es seguro y en Delphi no? LineComment Saludos |
|
#10
|
||||
|
||||
|
Ay ay me equivoque
![]() El que recolecta basura era el C# |
|
#11
|
||||
|
||||
|
Ok. Pero entonces, ¿qué hace que C++ si pueda tener el operator overloading y delphi no?
LineComment Saludos |
|
#12
|
||||
|
||||
|
Un parentesis pequeño, sólo para mostrar el recolector de basuras de C#
![]() P.D: Perdón, no pude evitarlo. ![]()
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
|
#13
|
||||
|
||||
|
Cita:
Delphi, por el contrario, fue derivado de alguien que *diseño* el lenguaje: http://pascal-central.com/ppl/#Origins Cita:
---- Ahora, lograr poder sobrecargar operadores no es en si algo tan problematico... excepto que en los lenguajes imperativos existe una división entre expresiones, clases, tipos, statements (bloques), etc. Si Delphi fuera un lenguaje unificado a todo es una expresión esto sería un cambio trivial. Tambien *supongo* que no seria trivial el darle una disponibilidad universal y que efectos tendria con el chequeo e intersección de tipos y si quedaria oscurecido el código por su uso. Esto no lo he pensando asi que es pura especulación. --- En ultimas hay cambios a los lenguajes que los alteran de forma fundamental. Intentar agregarles cosas puede terminar siendo poco "idiomático" o convertirse en una característica de nicho poco usada pero que igual tiene su coste en mantenimiento e implementación. P.D: Esta es una caracteristica que no es tan problematica si esta bien implementada, y NO SE PERMITE redefinir o crear nuevos operadores al vuelo (un problema que termina creando diversos codigos con el mismo operador pero diferente semantica!). Si esta limitado a unos pocos es muy util!
__________________
El malabarista. |
|
#14
|
||||
|
||||
|
¿Qué tendrá C/C++ que es tan envidiado y odiado?
Saludos. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Sobrecarga de propiedades | jzginez | OOP | 2 | 21-02-2014 17:58:09 |
| Duda operadores de clase | waremovil | C++ Builder | 4 | 22-02-2012 08:58:46 |
| Sobrecarga de constructores | vejerf | OOP | 2 | 06-06-2008 12:52:36 |
| Polimorfismo y sobrecarga | davitcito | Varios | 3 | 15-04-2005 19:56:11 |
| sobrecarga de operadores | zuriel_zrf | Varios | 1 | 11-09-2003 13:08:36 |
|