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

 
C-4:

Keine Extras? Ja, 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.

Cl1 und cl2 sind nicht dupliziert, sie sind verschiedene Klassen, sie haben verschiedene Methoden. Die Basis ist leer, weil sie nur benötigt wird, um die verschiedenen Klassen cl1 und cl2 in ein Array zu packen.

Überflüssig. Es sei denn, man könnte eine Methode in jeder Klasse machen.

 
Integer:
Das haben sie. Das ist großartig. Aber wie sich herausstellte, steckt mehr dahinter als das.

Was gab es also zu zeigen? Hier ist, was der Topstarter sagt:

papaklass:

Es lässt sich trefflich diskutieren! Wie schön, einen solchen Meinungsaustausch zu lesen.

An ThteXpert.

Wenn es Ihnen nicht schwer fällt, geben Sie bitte einige Beispiele von Codes (Sie können Ihre eigene Praxis verwenden), die Ihre Thesen verdeutlichen würden. Vergessen Sie nicht, dass die meisten "Dummköpfe" hier sind (ich spreche in erster Linie von mir selbst).

Ich habe ihm ein konkretes Beispiel gegeben, dass man nicht eine einzige Sammlung braucht, die mit verschiedenen Knoten arbeitet, sondern einen Knoten, der mit verschiedenen Sammlungen arbeitet, die wiederum mit verschiedenen Klassen arbeiten. Ich habe gezeigt, wie das Ganze mit CObject funktioniert.
 
C-4:

Was gab es also zu zeigen? Hier ist der Topikstarter schreibt:

Ich habe ihm ein konkretes Beispiel gegeben, dass man nicht eine Sammlung braucht, die mit verschiedenen Knoten arbeitet, sondern einen Knoten, der mit verschiedenen Sammlungen arbeitet, die wiederum mit verschiedenen Klassen arbeiten. Ich habe dir gezeigt, wie das alles mit CObject funktioniert.
Ja, das tut es, aber das macht uns nicht glücklich:)
 
papaklass:

... geben Sie einige Beispiele von Codes (Sie können Ihre eigene Praxis verwenden), die Ihre Thesen offenbaren würden.

Mann, das würde ich gerne, aber ich habe jetzt keine Zeit für MT5. Und ein oder zwei Tage muss ich wahrscheinlich für eine normale Implementierung aufwenden.
 
TheXpert:
Scheiße, ich würde ja gerne, aber ich habe jetzt keine Zeit für MT5. Und für eine normale Implementierung würde es wahrscheinlich ein oder zwei Tage dauern.
Wie mit so einem subtilen Hinweis darauf, dass alles, was hier geschrieben wurde, völliger Blödsinn ist, und nur du irgendeine magische Methode in deinem Versteck hast, die aber aufgrund unüberwindbarer Umstände niemandem bekannt sein wird. Kein Wunder.
 
Integer:
Wie mit einem so subtilen Hinweis, dass alles, was hier geschrieben wurde, ein Haufen Unsinn ist, und nur Sie eine magische Methode in Ihrem Versteck haben, die aber aufgrund unüberwindlicher Umstände niemandem bekannt sein wird. Das überrascht nicht.
Vielleicht meinen Sie mit dem Wort "normale Implementierung" die Implementierung auf Vorlagen.
 
Integer:

Ähm, ich drücke eigentlich keine Codes. Und ich poste eine Menge Zeug.

Integer:
Eine Art subtiler Hinweis, dass alles, was hier geschrieben wurde, Schwachsinn ist.

Nicht einmal annähernd ein solcher Hinweis. Viele der Artikel hier sind großartig. Die Codes sind es auch.

Normal ist auf Templates, ja.

Ach so, ja:
Warum treibst du dich hier rum, wenn es dir scheißegal ist? )
 

Admins und Moderatoren, was ist das für eine Doppelmoral?

Jemand spuckt Galle und Schlamm - wie Wasser auf die Mühlen... und ein normaler Kerl wird für nichts gebannt.....

 

ist es nicht ein MT5-Fehler, dass ein Klassenmitglied in einer const-Methode einer Klasse geändert wird????

CiSingleList.mqh - kompiliert ohne Fehler.

//+------------------------------------------------------------------+
//|| Zählen Sie die Größe der Liste|
//+------------------------------------------------------------------+
void CiSingleList::CalcSize(void) const
  {
   TRACE_CALL(_t_flag)
   uint count=0;
   if(!this.IsEmpty()) // wenn die Liste nicht leer ist
     {
      // Verarbeitung einer Liste mit einem Knoten
      if(this.m_head==this.m_tail && this.m_head.GetVal()!=NULL)
         count=1;
      // ansonsten die gesamte Liste durchgehen 
      else
        {
         CiSingleNode *offNode=this.m_tail.GetNextNode();
         for(CiSingleNode *sn=this.m_head; sn!=offNode; sn=sn.GetNextNode())
            ++count;  // den Zähler erhöhen
        }
     }
   this.m_size=count;
  }
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - Документация по MQL5
 
ALXIMIKS:

Ist es nicht ein MT5-Fehler, dass ein Klassenmitglied in einer const-Methode einer Klasse geändert wird????

Fehler, wahrscheinlich noch nicht behoben. Sie haben kürzlich irgendwo geschrieben.