Discusión sobre el artículo "Fundamentos de programación en MQL5 - Listas" - página 7

 
Debido a la necesidad de utilizar switch, se pierde todo el sentido. Si ese es el caso, puedes prescindir de toqueteos innecesarios, simplemente un array diferente para los objetos de cada tipo. Entonces, "el rey está desnudo".
 

A veces parece que aquí muchos o algunos han confundido el fanatismo y la realidad, lo deseable y lo posible.

En lugar de coger una pala y cavar, se hace un alarde sofisticado del tema de la pala: "y tal vez aquí en el borde así que afílala", "con tal vez aquí un giro de esquina"..... Todo acaba en el nivel de la pala.

 
Integer:
Debido a la necesidad de utilizar switch, se pierde todo el sentido. Si ese es el caso, puedes prescindir de toqueteos innecesarios, simplemente un array diferente para los objetos de cada tipo. Entonces, "el rey está desnudo".

Esta es una demostración de que una hoja puede contener objetos de cualquier tipo. Además, cada tipo puede ser identificado dinámicamente si incluye información adicional sobre su tipo. Esta "información adicional" es un eslabón débil, pero desgraciadamente MQL no proporciona herramientas para el control de tipos, así que no podemos prescindir de ella. Si alguien conoce una solución mejor: por favor, envíe el código, será interesante verlo.

Como si su comentario insinúa que usted no ha tratado con el patrón "método de plantilla")))

 
C-4:

1. Se trata de una demostración de que una hoja puede contener objetos de cualquier tipo.

2. Tu comentario insinúa que no te has ocupado del patrón "método de plantilla")))

1. Está bien, por supuesto. Pero, ¿para qué sirve?

2. Sí. ¿Y...? ¿He perdido mucho? Se trata de nuevo de una conversación sobre cómo "afilar" o "doblar" algo con una pala.

 
¿De qué "patrones" estamos hablando? ¿Es alguien que impuso su forma de pensar y todos bailan? ¿Por qué se eleva a tan alto rango a estos patrones?
 
Integer:

1. Es bonito, por supuesto. Pero ¿de qué sirve?

2. Sí. ¿Y...? ¿He perdido mucho? Se trata de nuevo de una conversación no sobre los méritos, sino sobre el tema de cómo "afilar" o "doblar" algo allí en la pala.

¿Cuál era la tarea? ¿Qué había que hacer? Pensé que se pidió para mostrar el trabajo de diferentes clases con un nodo.
 

También he conseguido meter diferentes objetos en un array, y fíjate que queda más claro, porque no hay nada de más:

class base{
   private:
   public:   
};

class cl1:public base{
   private:
      int m_v1;
      int m_v2;
   public:  
   void cl1(int v1,int v2){
      m_v1=v1;
      m_v2=v2;   
   }
   void f1(){
      Alert("(1) "+m_v1);
   }
   void f2(){
      Alert("(1) "+m_v2);   
   }
};

class cl2:public base{
   private:
      int m_v1;
      int m_v2;
   public:  
   void cl2(int v1,int v2){
      m_v1=v1;
      m_v2=v2;   
   }
   void f3(){
      Alert("(2) "+m_v1); 
   }
   void f4(){
      Alert("(2) "+m_v2); 
   }
};

base * a[];

int x1=1;
int x2=2;

int x()
  {
   
   return(x1=x2);
  }

void OnStart()
  {

   ArrayResize(a,10);
   
   cl1 * a1;
   
   a[0]=new cl1(1,2);
   a[1]=new cl2(3,4);  
   
}

¿Y qué? Nada. Sobrecarga no funciona, es necesario registrar el tipo, a continuación, a través de interruptor. Esa es toda la alegría.

 
Integer:
¿De qué "patrones" estamos hablando? ¿Es alguien que impuso su forma de pensar y todos bailan? ¿Por qué estos patrones son elevados a tan alto rango?
No, no es nada, no te preocupes... No pasa nada. Es que un día un puñado de programadores generalizaron unos algoritmos universales y los llamaron "patrones". ¡Imagínate, estos idiotas incluso publicaron un libro sobre ellos:))))))! ¡La gente no tiene nada que hacer!
 
C-4:
¿Cuál era la tarea? ¿Qué había que hacer? Creía que habías pedido que se mostrara cómo funcionan las diferentes clases con un nodo.
Lo has hecho. Es genial, por supuesto. Pero resulta que no es todo lo que se necesita.
 
Integer:

También he conseguido meter diferentes objetos en un array, y fíjate que queda más claro, porque no hay nada de más:

¿Y qué? Nada. Sobrecarga no funciona, es necesario registrar el tipo, a continuación, a través de interruptor. Esa es toda la alegría.

¿Nada extra? Tus clases son 100% redundantes. Todos los métodos y datos de cl1 están casi completamente duplicados por la clase cl2, mientras que la base está vacía.