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
Beziehen Sie sich auf deren Standardbibliothek? )
Nein, ich meine, dass man in MQL eine abstrakte virtuelle Methode nicht ohne Implementierung deklarieren kann. In MQL müssen virtuelle Methoden einer Basisklasse immer eine Implementierung haben, was mit den von Ihnen erwähnten Problemen behaftet ist.
Es gibt nicht viele grundlegende Schnittstellen in C#
Tatsächlich gibt es eine Menge davon.
Meiner Meinung nach ist nicht alles schlecht. Meiner Meinung nach gibt es in C# nicht so viele grundlegende Schnittstellen (ich bin kein C#-Spezialist), dass man ihre Methoden nicht auf eine grundlegende Oberklasse reduzieren und dann erben kann, was man braucht.
P.S. Etwas mehrfaches durch Konstruktionen wie <<<<>>>> zu implementieren ist ein bisschen mühsam. Besser ist es, Funktionen durch Operatoren auszuführen, z. B. a==b ruft a.compareto( b ) auf, a[comparer]==b ruft comparer.compare(a,b) auf usw.Imho wäre das ein schrecklicher Mischmasch.
+ Der Aufruf von virtuellen Methoden ist nicht kostenlos.Nein, ich meine, dass man in MQL eine abstrakte virtuelle Methode nicht ohne Implementierung deklarieren kann. In MQL müssen virtuelle Methoden einer Basisklasse immer eine Implementierung haben, was mit den von Ihnen erwähnten Problemen behaftet ist.
Ich bin mir nicht sicher, warum man es nicht ohne Implementierung deklarieren kann? Abstrakte Klassenmethoden werden in MQL schon seit Jahren unterstützt.
1. Es gibt sogar eine ganze Reihe von ihnen.
2. Imho wäre es ein schrecklicher Mischmasch.
+ Der Aufruf von virtuellen Methoden ist nicht kostenlos.1. ich werde es wissen.
2. Mal sehen, was passiert, wenn ich das, was ich jetzt mache, richtig hinbekomme, werde ich es im Forum posten).
Nicht umsonst, ja. Jede universelle OOP-Lösung ist teuer, aber wenn Ihr Ziel darin besteht, einfache Expert Advisors und Indikatoren (ohne besondere Funktionen) einfach und schön zu erstellen, dann ist es das wert, imho.
Ich verstehe nicht wirklich, warum man nicht ohne Implementierung deklarieren kann? Abstrakte Klassenmethoden werden in MQL schon seit Jahren unterstützt.
Denn ein Eintrag wie dieser führt zu einem Kompilierungsfehler:
Denn ein Eintrag wie dieser führt zu einem Kompilierfehler:
Und die Person dachte, dass es unmöglich ist, eine solche Methode in MQL überhaupt zu deklarieren, so weit ich das aus seinem Beitrag verstanden habe.
Nur wenige Menschen wissen es (und noch weniger, die es wissen und benutzen), aber rein virtuelleFunktionen können einen Körper haben
Sie müssen auch in der Nachfolgeklasse überladen werden
Nur wenige Menschen wissen (und noch weniger wissen und verwenden), dass rein virtuelleFunktionen einen Körper haben können
Sie müssen auch in der Nachfolgeklasse überladen werden
Schnittstellen können also weiterhin ihren eigenen Methodencode haben? Kann man es irgendwie nennen? )
Ich bin erst kürzlich darauf gestoßen...
p.s. Ich habe es jetzt ausprobiert... Selbst wenn A::f2() keinen Körper hat, reagiert der Compiler nicht auf einen solchen Aufruf. D.h. ich muss später in der Laufzeit einen Fehler abfangen. Keine Chance.
Hmm, interessantes Feature... Ich vermute, es ist eine Standardmethode, die nur in Nachfahren von A::f2() aufgerufen wird.
Getestet - Sie haben im Allgemeinen Recht =)
p.s. Obwohl ich es jetzt ausprobiert habe... Selbst wenn A::f2() keinen Körper hat, reagiert der Compiler nicht auf einen solchen Aufruf.
Offenbar ist es doch eine Kakerlake...