OOP, Vorlagen und Makros in mql5, Feinheiten und Anwendungen - Seite 4

 
Alexey Navoykov:
Ich habe es bereits getan - und bereue es kein bisschen. Aber Sie, wie ich sehe, haben ein großes Vergnügen daran, sich mit den künstlichen Beschränkungen von MQ einzuschränken. Vielleicht sind Sie ein Masochist? ) Sie wollen mich unbedingt davon überzeugen, dass es notwendig ist. Es ist nicht notwendig, es ist erzwungen - das ist der Punkt.

Sie sehen eher wie ein Masochist aus. Anstatt die Regeln der Sprache zu befolgen, haben Sie Ihre Zeit damit verbracht, eine Krücke zu schreiben, die niemand braucht, und versucht, Ihre Meinung als Axiom auszugeben, obwohl ich nicht der Einzige bin, der Sie auf Ihre Fehler hinweist. Und obendrein versuchen Sie, Ihr Handwerk als Finessen und Tricks auszugeben. Und die Feinheiten und Besonderheiten ergeben sich aus der Einhaltung der in der Dokumentation beschriebenen Regeln.

Wenden Sie sich an die Entwickler von C-Sprachvarianten. Hören Sie sich die Adresse des Links an, über den Sie weitergeleitet werden. Und Sie meinen, es sei akzeptabel, von den Entwicklern etwas als Gegenleistung für Ihre eigene Unwissenheit zu verlangen.

 
Alexey Viktorov:

Sie sehen eher wie ein Masochist aus. Anstatt die Regeln der Sprache zu befolgen, haben Sie Ihre Zeit damit verbracht, eine Krücke zu schreiben, die niemand haben will.

Ein halber Tag, der für das Schreiben einer Krücke aufgewendet wird, wird durch die eingesparte Zeit und die eingesparten Nervenzellen sowie die Bequemlichkeit des Codes (ich schreibe ihn so, wie ich ihn brauche) wieder wettgemacht.

Sie versuchen, Ihre Meinung als unumstößlich hinzustellen, obwohl ich nicht der Einzige bin, der Sie auf Ihre Fehler hinweist.

...

Wenden Sie sich an die Entwickler von C-Sprachen.

Irrtümer? Haben Sie jemals in einer echten Programmiersprache programmiert? Das glaube ich nicht. Falls Sie es noch nicht wissen, MQL ist ähnlich wie C++ geschrieben. In diesem Fall ist den Entwicklern also ein Fehler unterlaufen, und sie haben einige Details nicht berücksichtigt und einen Fehler geschaffen, der in normalen Programmiersprachen nicht zu finden ist.

Und hier halten Sie es für akzeptabel, von den Entwicklern etwas zu verlangen, anstatt Ihre eigene Unwissenheit zu zeigen.

Sie sind schon wieder verwirrt. Ich verlange nichts mehr.
 
Alexey Navoykov:

Ein halber Tag, den ich mit dem Schreiben einer Krücke verbringe, wird sich für mich in der Zukunft durch eine Menge gesparte Zeit und Nervenzellen auszahlen, plus die Bequemlichkeit des Codes (ich schreibe ihn so, wie ich ihn brauche)

Irrtümer? Haben Sie jemals in einer echten Programmiersprache programmiert? Das glaube ich nicht. Falls Sie es noch nicht wissen, MQL ist ähnlich wie C++ geschrieben. In diesem Fall ist den Entwicklern also ein Fehler unterlaufen, und sie haben einige Details nicht berücksichtigt und einen Fehler geschaffen, der in normalen Programmiersprachen nicht zu finden ist.

Sie sind schon wieder verwirrt. Ich fordere nichts.

Warum sollten mql-Entwickler jemanden imitieren?

 
Alexey Viktorov:

Warum in aller Welt sollten MQL-Entwickler irgendjemanden nachahmen wollen?

Schauen Sie sich die Dokumentation an, dort steht alles schwarz auf weiß.
 
Alexey Viktorov:

Wenden Sie sich an die Entwickler der C-Sprachvarianten. Hören Sie sich die Adresse des Links an, über den Sie weitergeleitet werden. Und Sie meinen, es sei akzeptabel, von den Entwicklern etwas zu verlangen, um Ihre eigene Unwissenheit zu kompensieren.

Was hat die Sprachfamilie C damit zu tun? Sie ist nur in µl angegeben. Das ist, weil mk beschlossen, Multi-Pass-Kompilierung zu machen, um diejenigen, die wollen, zu gefallen.

void start() {
    int i = f();
}
int f() {return 0;}

Was Sie nicht hätten tun sollen.

ZS:

Generell habe ich hier mehr als einmal gehört, dass C++ ein Schuss in den Ofen ist, 70% werden dort gar nicht verwendet, wir machen ein bequemes und sicheres µl. Aber es sieht eher so aus, dass wir dieses "krumme" C++ neu erfinden müssen, um komfortabel zu programmieren :)

 
Alexey Navoykov:

Sie befürworten also den massiven Einsatz globaler Variablen, so wie ich es verstehe. Dann werden wir uns wohl kaum verstehen.

Außerdem kann die Funktion selbst eine Vorlage sein. Und die erzeugte Instanz sollte jeweils durch denselben Typ parametrisiert werden:

Ihr Vorgehen?

Nicht, dass ich ein Befürworter wäre, aber ich sehe keinen Sinn darin, eine Instanz einer Klasse ein für alle Mal zu deklarieren, selbst wenn es für nichts anderes notwendig ist als für die einfache Verwendung statischer Variablen. Und wenn ich in letzter Zeit selbst mit diesem Fehler mit Statik innerhalb von Funktionen konfrontiert, habe ich einfach beschlossen, nie zu deklarieren sie so (innerhalb von Funktionen) und es gibt keine Probleme überhaupt.

 
pavlick_:

Das liegt daran, dass mc beschlossen hat, eine Zusammenstellung in mehreren Durchgängen zu machen, damit diejenigen, die das tun wollen, davon profitieren können.

was sie nicht hätten tun sollen.

Ich fürchte, er wird nicht verstehen, was Sie meinen.)
 
pavlick_:

Was hat die Sprachfamilie C damit zu tun? Das ist das Einzige, was bei MCL nicht stimmt. Das liegt daran, dass µ beschlossen hat, eine Multipass-Zusammenstellung für diejenigen zu erstellen, die es so wollen.

Was Sie nicht hätten tun sollen.

ZS:

Generell habe ich hier mehr als einmal gehört, dass C++ ein Schuss in den Ofen ist, 70% werden dort gar nicht verwendet, wir machen ein bequemes und sicheres µl. Aber es sieht eher so aus, dass wir dieses "krumme" C++ neu erfinden müssen, um komfortabel zu programmieren :)

Sie sagen also, dass man eine Variable nicht mit einer Funktion initialisieren kann? Verstehe ich das richtig?

 
Ilya Malev:

Nicht, dass ich ein Befürworter wäre, aber ich sehe keinen Sinn darin, eine Instanz einer Klasse unmittelbar nach ihrer Beschreibung zu deklarieren, selbst wenn sie für nichts anderes benötigt wird als für die bequeme Verwendung statischer Variablen. Und als ich vor kurzem selbst mit diesem Fehler mit Statics innerhalb von Funktionen konfrontiert wurde, habe ich einfach beschlossen, sie nie so zu deklarieren (innerhalb von Funktionen) und es gibt überhaupt keine Probleme mehr.

Das ist es, worüber ich hier gesprochen habe. Ich hatte auch vor, alle Statics durch Globals zu ersetzen (obwohl das natürlich schwierig ist). Aber wie oben gezeigt, funktioniert das nicht mit Templates und auch nicht mit Makros. Und ich benutze das alles häufig, also habe ich meine Implementierung gemacht. Obwohl sie nicht alle Probleme löst. Dynamische Arrays können immer noch nicht initialisiert werden, konstante Typen auch nicht, also müssen sie eindeutig globalisiert werden.
 
Alexey Viktorov:

Sie sagen also, dass man eine Variable nicht mit einer Funktion initialisieren kann? Verstehe ich das richtig?

Nein, das ist nicht das, was ich sage. In Plus Static wird ein Funktionsmitglied beim ersten Eintritt in die Funktion initialisiert. Zum Thema Multi-Passing - ich hatte es eilig und dachte naiverweise, dass µl dies erlauben würde.

int q = w;
int w;
Grund der Beschwerde: