OOP, plantillas y macros en mql5, sutilezas y usos - página 7

 
Ilya Malev:

En mi opinión, no es tan malo. No hay tantas interfaces básicas en C#, en mi opinión (no soy un experto en C#), que sus métodos no puedan ser reducidos a una superclase básica, y luego heredados por quien necesite qué

¿A qué te refieres con "heredar quien lo necesite"? ¿A heredar no toda la clase sino una parte de ella? ) No conozco tal función
 
Alexey Navoykov:
¿Qué quieres decir con "heredar lo que necesitas"? ¿Heredar no toda la clase sino una parte de ella? ) No estoy familiarizado con dicha funcionalidad.

No, me refería a definir muchas funciones virtuales y sobrecargarlas en los herederos según sea necesario.

 
Ilya Malev:

No, me refería a definir muchas funciones virtuales y sobrecargarlas en los herederos según sea necesario.

Es un caos total y falta de control. Las interfaces definen métodos abstractos que deben ser implementados, no "por necesidad". Y con tu enfoque si te olvidas de sobrecargar un método en alguna parte, el programa compilará como si no hubiera pasado nada, pero en lugar del método necesario se llamará dummy.
 
Alexey Navoykov:
Es un caos total y descontrolado. Las interfaces definen métodos abstractos que deben ser implementados, no "por necesidad". Esto asegura la implementación de estos métodos en el objeto. Y con tu enfoque si te olvidas de sobrecargar un método en alguna parte, el programa compilará como si no hubiera pasado nada pero se llamará al programa en lugar del método necesario.

No es un espacio en blanco, sino una excepción "no implementada". En C#, está por todas partes.

 
Alexey Navoykov:
... Si te olvidas de sobrecargar un método en alguna parte, el programa compilará como si no hubiera pasado nada, pero en lugar del método requerido se llamará a uno en blanco. Es normal...

Así es como funciona en MQL, por cierto ;(.

 
Ilya Malev:

No es un espacio en blanco, sino una excepción "no implementada". También en C#, parece que está por todas partes.

No es el caso, propones atrapar los errores en tiempo de ejecución, mientras que estos errores pueden (y deben) ser atrapados en tiempo de compilación.
 
Vasiliy Sokolov:

Así es como funciona en MQL, por cierto ;(

¿Te refieres a su biblioteca estándar? )
 
Alexey Navoykov:
No es el caso, propones atrapar los errores en tiempo de ejecución, mientras que estos errores pueden (y deben) ser atrapados en tiempo de compilación.

Creo que es mejor que construir estructuras como la plantilla <,,,,,,,> para las clases. Te romperá el cerebro antes de que termines de construir tal "sistema de clases".

 
Ilya Malev:

Creo que es mejor que construir estructuras como la plantilla <,,,,,,,> para las clases. Te romperá el cerebro antes de que termines de construir tal "sistema de clases".

Prefiero devanarme los sesos con el compilador, pero así me aseguro de que mi programa funcione correctamente y se llame a un método que funcione y no a otra cosa.
 
Alexey Navoykov:
Prefiero devanarme los sesos con el compilador, pero así me aseguro de que mi programa funcione correctamente y se llame a un método que funcione, no a una locura.

Si todo tiene una clase base simple, que en su mayor parte aparece en todas partes, y luego van los calcos dinámicos, podría funcionar).