Discussione sull’articolo "Forum sulla programmazione MQL5 Liste" - pagina 7

 
A causa della necessità di usare gli switch, l'intero scopo è perso. Se questo è il caso, si può fare a meno di inutili armeggi, basta un array diverso per gli oggetti di ogni tipo. Quindi, "il re è nudo".
 

A volte sembra che molti o alcuni qui abbiano confuso fanatismo e realtà, ciò che è desiderabile e ciò che è possibile.

Invece di prendere una pala e scavare, c'è una sofisticata ostentazione del tema della pala: "e forse qui sul bordo così la affiliamo", "con forse qui una torsione d'angolo".... Tutto finisce al livello della pala.

 
Integer:
A causa della necessità di usare gli switch, l'intero scopo è perso. Se questo è il caso, si può fare a meno di inutili armeggi, basta un array diverso per gli oggetti di ogni tipo. Quindi, "il re è nudo".

Questa è la dimostrazione che un foglio può contenere oggetti di qualsiasi tipo. Inoltre, ogni tipo può essere identificato dinamicamente se include informazioni aggiuntive sul suo tipo. Queste "informazioni aggiuntive" sono un anello debole, ma purtroppo MQL non fornisce strumenti per il controllo del tipo, quindi non possiamo farne a meno. Se qualcuno conosce una soluzione migliore, è pregato di inviare il codice, sarebbe interessante vederlo.

Come se il vostro commento lasciasse intendere che non avete affrontato il modello "metodo template")))

 
C-4:

1. Questa è la dimostrazione che un foglio può contenere oggetti di qualsiasi tipo.

2. Il vostro commento lascia intendere che non avete affrontato lo schema del "metodo modello")))

1. È bello, certo. Ma a cosa serve?

2. Sì. E...? Ho perso molto? Anche in questo caso si tratta di una conversazione su come "affilare" o "piegare" qualcosa con una pala.

 
Di quali "modelli" stiamo parlando? È qualcuno che ha imposto il suo modo di pensare e tutti ballano? Perché questi modelli sono elevati a un rango così alto?
 
Integer:

1. È bello, certo. Ma a cosa serve?

2. Sì. E...? Ho perso molto? Anche in questo caso si tratta di una conversazione non sul merito, ma su come "affilare" o "piegare" qualcosa lì alla pala.

Qual era il compito? Cosa si doveva fare? Pensavo che fosse stato chiesto di mostrare il lavoro di diverse classi con un unico nodo.
 

Sono anche riuscito a inserire oggetti diversi in un array e ho notato che è più chiaro, perché non c'è nulla in più:

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);  
   
}

E allora? Niente. L'overloading non funziona, è necessario registrare il tipo, quindi tramite switch. Questa è tutta la gioia.

 
Integer:
Di quali "modelli" stiamo parlando? È qualcuno che ha imposto il suo modo di pensare e tutti ballano? Perché questi schemi sono elevati a un rango così alto?
No, non è niente, non preoccuparti... È tutto a posto. È solo che un giorno un gruppo di programmatori ha generalizzato alcuni algoritmi universali e li ha chiamati "pattern". Pensa, questi idioti hanno persino pubblicato un libro su di essi:))))))! La gente non ha niente da fare!
 
C-4:
Qual era il compito? Cosa si doveva fare? Pensavo che avessi chiesto di mostrare come diverse classi lavorano con un nodo.
L'hai fatto. È bello, naturalmente. Ma, a quanto pare, non è tutto ciò che serve.
 
Integer:

Sono anche riuscito a inserire oggetti diversi in un array e ho notato che è più chiaro, perché non c'è nulla in più:

E allora? Niente. L'overloading non funziona, è necessario registrare il tipo, quindi tramite switch. Questa è tutta la gioia.

Niente in più? Le vostre classi sono ridondanti al 100%. Tutti i metodi e i dati di cl1 sono quasi completamente duplicati dalla classe cl2, mentre la base è vuota.