Diskussion zum Artikel "Grundlagen der Programmierung in MQL5: Listen" - Seite 7

 
Durch die Notwendigkeit, switch zu verwenden, geht der ganze Sinn verloren. Wenn das der Fall ist, kann man sich unnötige Fummeleien sparen und einfach ein anderes Array für Objekte jedes Typs verwenden. Also, "der König ist nackt".
 

Manchmal scheint es, als ob viele oder einige hier Fanatismus und Realität, das Wünschenswerte und das Mögliche verwechselt haben.

Anstatt eine Schaufel zu nehmen und zu graben, wird das Schaufelthema raffiniert zur Schau gestellt: "und vielleicht hier an der Kante so schärfen", "mit vielleicht hier eine Ecke drehen" .... Alles endet auf der Ebene der Schaufel.

 
Integer:
Durch die Notwendigkeit, switch zu verwenden, geht der ganze Sinn verloren. Wenn das der Fall ist, kann man sich unnötige Fummeleien sparen und einfach ein anderes Array für Objekte jedes Typs verwenden. Also "der König ist nackt".

Dies ist eine Demonstration, dass ein Blatt Objekte jeden Typs enthalten kann. Außerdem kann jeder Typ dynamisch identifiziert werden, wenn er zusätzliche Informationen über seinen Typ enthält. Diese "zusätzlichen Informationen" sind eine Schwachstelle, aber leider bietet MQL keine Werkzeuge zur Typkontrolle, so dass wir darauf nicht verzichten können. Wenn jemand eine bessere Lösung kennt: bitte den Code einreichen, es wäre interessant, ihn zu sehen.

Als ob Ihr Kommentar darauf hinweist, dass Sie sich nicht mit dem Muster "Template-Methode" beschäftigt haben)))

 
C-4:

1 Dies ist eine Demonstration, dass ein Blatt Objekte jeder Art enthalten kann.

2. Ihr Kommentar deutet darauf hin, dass Sie sich nicht mit dem Muster "Template-Methode" beschäftigt haben)))

1. das ist natürlich schön. Aber wozu ist das gut?

2. Ja. Und...? Habe ich eine Menge verloren? Dies ist wieder ein Gespräch darüber, wie man etwas mit einer Schaufel "schärft" oder "biegt".

 
Von welchen "Mustern" ist hier die Rede? Ist es jemand, der seine Art zu denken durchgesetzt hat und alle tanzen? Warum wird diesen Mustern ein so hoher Stellenwert eingeräumt?
 
Integer:

1. das ist natürlich schön. Aber wozu soll das gut sein?

2. Ja. Und...? Habe ich viel verloren? Das ist wieder ein Gespräch nicht über die Sache, sondern über das Thema, wie man dort an der Schaufel etwas "schärft" oder "biegt".

Was war also die Aufgabe? Was war zu tun? Ich dachte, es wurde darum gebeten, die Arbeit verschiedener Klassen an einem Knotenpunkt zu zeigen.
 

Ich habe es auch geschafft, verschiedene Objekte in ein Array zu packen, und stelle fest, dass es übersichtlicher ist, weil es nichts Zusätzliches gibt:

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

Was also? Nichts. Überladen funktioniert nicht, müssen Sie den Typ zu registrieren, dann durch Schalter. Das war's dann mit der Freude.

 
Integer:
Von welchen "Mustern" ist hier die Rede? Ist es jemand, der seine Art zu denken durchgesetzt hat und alle tanzen? Warum wird diesen Mustern ein so hoher Stellenwert eingeräumt?
Nein, es ist nichts, mach dir keine Sorgen... Das ist schon in Ordnung. Es ist nur so, dass eines Tages ein Haufen Programmierer einige universelle Algorithmen verallgemeinert und sie "Muster" genannt hat. Stell dir vor, diese Idioten haben sogar ein Buch darüber veröffentlicht: ))))))! Die Leute haben nichts zu tun!
 
C-4:
Was war die Aufgabe? Was war zu tun? Ich dachte, Sie wollten zeigen, wie verschiedene Klassen mit einem Knoten arbeiten.
Das hast du. Das ist natürlich cool. Aber wie sich herausstellt, ist das nicht alles, was man braucht.
 
Integer:

Ich habe es auch geschafft, verschiedene Objekte in ein Array zu packen, und stelle fest, dass es übersichtlicher ist, weil es nichts Zusätzliches gibt:

Was also? Nichts. Überladen funktioniert nicht, müssen Sie den Typ zu registrieren, dann durch Schalter. Das ist die ganze Freude.

Nichts extra? Ihre Klassen sind zu 100% redundant. Alle Methoden und Daten von cl1 sind fast vollständig in der Klasse cl2 dupliziert, während base leer ist.