Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1335
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Da sollte es keinen Unterschied geben. Für mich sieht es einfach schöner aus - der Code ist weniger mit Klammern und Einrückungen überladen.
Für eine Prüfung (wenn) ja, aber im Code gibt es zwei, und wenn es viele sind, dann Logik Wenn Ja, Kontingent und neue Schleife Iteration, sonst Aktion A Logik Wenn Nein dann Aktion sonst weitergeben zur nächsten Bedingung Wenn Nein. In diesem Fall wird der Schleifenkörper ganz durchlaufen.
Für eine Prüfung (wenn) ja, aber es gibt zwei in den Code, und wenn es viele, dann die Logik Wenn ja, weiter und eine neue Schleife Iteration, sonst Aktion A Logik Wenn nein, dann Aktion sonst weitergeben, um die nächste Bedingung Wenn nein. In diesem Fall wird der Schleifenkörper bis zum Ende durchlaufen.
Ich verstehe nichts, aber so soll es sein.
Sie werden. Ich benutze es, weil ich es will :) Damit wird explizit angegeben, welche Klassenmethoden verwendet werden.
Wenn Sie zwei Klassen haben, eine als Elternklasse und eine als geerbte Klasse, und sie haben zwei Methoden mit dem gleichen Namen, aber sie sind aus irgendeinem Grund nicht virtuell, müssen Sie explizit angeben, welche Methode zu verwenden ist.
Angenommen, die übergeordnete Klasse ist CParent und die geerbte Klasse ist CInheritedund beide haben die Methode Method().
Wenn wir in diesem Fall eine Methode Method() einer CParent-Klasse aufrufen, ruft diese explizit eine Methode der CParent-Klasse auf - dies ist hier nicht erforderlich. Wir können die Methode mit oder ohne sie aufrufen.
Wenn wir eineMethode() in einer geerbten CInherited-Klasseaufrufen ,wird auch die Methodedieser Klasse aufgerufen, da wir zuerst nach einer Methode suchen, die zu der Klasse gehört, aus der wir sie aufrufen.
Wenn wir CParent::Method() in einer CInherited-Klasseaufrufen , wird auf diese Weise die Methode der Elternklasse aufgerufen, da wir durch den Kontextauflösungsoperator explizit eine Methode angegeben haben, die zur Elternklasse gehört.
Aber ich würde trotzdem die Methode Method() in CInherited class mitAngabe this - um sicher zu sein, dass die Methode dieser (this == "this") geerbten Klasse aufgerufen wird.
Es gibt auch andere Erklärungen für diese Verwendung. Vielleicht kann uns das jemand sagen, der mehr Erfahrung mit OOP hat.
Artem, vielen Dank für eine so umfassende Antwort, die die Einstellung zu OOP zum Besseren verändert).
Wie kann ich ein Live-Konto eröffnen?
1. Wählen Sie einen Makler.
2. Wählen Sie eine Plattform, MT4 oder MT5.
3. Eröffnen Sie ein Live-Konto bei dem Broker.
Ja, ich gehöre zu diesen "einigen Leuten", vor allem wenn ich eine Standardfunktion aus einer Klasse aufrufe, achte ich darauf, den globalen Kontext anzugeben. Nur weil ich in dieser Klasse vielleicht eine Methode mit demselben Namen wie die Standardfunktion schreiben möchte - damit ich nie vergesse, was sie tut. Und dann braucht man ::, um eine Standardfunktion aufzurufen, und dies - um meine Methode mit demselben Namen aufzurufen.
Artem, es widerlegt bereits den zweiten Teil des Ausdrucks "notwendig - nicht notwendig". Es ist notwendig, das heißt, es ist notwendig. Es gibt keine Einwände...
Hallo
So berechnen Sie den Abstand in Pips zwischen dem aktuellen Kurs und dem nächstgelegenenschwebenden Limit-Auftrag. Ich bin an einem vorgefertigten Code interessiert.
Für eine Prüfung (wenn) ja, aber es gibt zwei in den Code, und wenn es viele, dann die Logik Wenn Ja, weiter und eine neue Schleife Iteration, sonst Aktion A Logik Wenn Nein, dann Aktion sonst übergeben, um die nächste Bedingung Wenn Nein. In diesem Fall wird der Schleifenkörper ganz durchlaufen.
Für mich ist die bevorzugte Option
oder dies
Eine andere Variante
Die andere Variante ist an der Grenze zur Idiotie.
Aber das ist eine Frage des Geschmacks. Was auch immer man mag.
Soweit ich weiß, wurde diese Methode verwendet, wenn der if-Operator ALLE Bedingungen vom Anfang bis zum Ende überprüft hat. Begründet wurde dies mit der Tatsache, dass die folgenden Bedingungen nicht geprüft werden müssen, wenn die erste Bedingung nicht erfüllt ist. Nun werden alle Bedingungen nach der nicht erfüllten Bedingung nicht geprüft. Und solche Konditionstreppen sind nicht mehr nötig, nur noch eine Gewohnheit.
Artyom, das widerlegt bereits den zweiten Teil des Ausdrucks "sollte nicht". Wenn ich es tun muss, muss ich es tun. Keine Einwände...