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
Ist es möglich, ein statisches Array in einem öffentlichen Klassenteil zu deklarieren und es im Konstruktor zu initialisieren? (wie unten) (oder nur Element für Element?)
können Sie
oder sind Sie vielleicht doch auf der Suche nach einer statischen Array-Initialisierung?
Kann ein statisches Array im öffentlichen Klassenteil deklariert und im Konstruktor initialisiert werden? (wie unten) (oder nur Element für Element?)
Es geht ungefähr so:
Im Allgemeinen ist diese Armut der OOP vor dem Hintergrund ihrer Brillanz auffällig. Warum können wir Variablen und Arrays nicht wie üblich initialisieren, wenn wir sie deklarieren? Ich bezweifle nicht, dass die Theoretiker jetzt eine Menge Theorien aufstellen werden, die mich als Idioten hinstellen, aber trotzdem...Sie können ein lokales Array initialisieren und ArrayCopy in das entsprechende Arrayfeld ausführen:
Dies war auch ein Gedanke, kann es in globalen Bereich außerhalb jeder Klasse als gut platziert werden.
Es ist sogar noch einfacher, aber ich wollte, dass es OOP ist))
Es geht ungefähr so:
Im Allgemeinen ist diese Armut der OOP vor dem Hintergrund ihrer Brillanz auffällig. Warum können wir Variablen und Arrays nicht wie üblich initialisieren, wenn wir sie deklarieren? Ich bezweifle nicht, dass die Theoretiker viele Theorien aufstellen werden, um zu beweisen, dass ich ein Idiot bin, aber trotzdem...Ich habe jedes Mal, wenn ich mit OOP schreibe, genau denselben Gedanken)).
Dies war auch ein Gedanke, kann es in den globalen Bereich außerhalb einer Klasse platziert werden.
Es ist sogar noch einfacher, aber ich wollte, dass es OOP ist))
können Sie
oder sind Sie vielleicht doch auf der Suche nach einer statischen Array-Initialisierung?
interessante Option.
ruft eine "Methode mit Konstruktor" auf?
Interessante Option.
ist dies ein "Methode mit Konstruktor"-Aufruf?
keine
So initialisiert man die Statik.
Sie müssen es nicht initialisieren, der Code wird so aussehen:
Dies ist kein Methodenaufruf, sondern der vollständige Name des Feldes der Klasse A::Mass[5];
aber wenn Sie die Zeile löschen, kommt es zu einem Compilerfehler - Statics müssen Speicher zuweisen, bevor die Klasseninstanz erstellt wird - das ist, was die gelbe Zeile tutkeine
So wird die Initialisierung der Statik geschrieben
Sie müssen es nicht initialisieren, der Code wird so aussehen:
vielen Dank, es stellt sich heraus, dass diese Zeile(static bool A::Mass[5];) kann nicht auf Konstruktor in irgendeiner Weise übertragen werden?
oder ist dies die einzige Möglichkeit, die Statik in einem solchen Fall zu initialisieren?
Beitrag oben ergänzt
ja, die Statik sollte separat beschrieben werden,@fxsaber hat mir geholfen, sie zu verstehenhttps://www.mql5.com/ru/forum/325418/page4#comment_16116740
können Sie auch in MQL5 statische Klassen initialisieren.
d.h. diese Zeile(static bool A::Mass[5];) kann nicht in den Konstruktor übernommen werden?
Nein, es handelt sich um ein statisches Klassenfeld. Sie müssen den Speicher im Voraus zuweisen, nicht zum Zeitpunkt der Erstellung der Klasseninstanz.
und Sie werden es als gewöhnliches Array weiterverwenden
Wenn es um die Initialisierung in Form einer einzelnen Zeichenkette geht, dann ist die Version von Sergei das, was Sie suchen, und Sie brauchen keine Statik.
Beitrag oben ergänzt
ja, die Statik sollte separat beschrieben werden,@fxsaber hat mir geholfen, sie zu verstehenhttps://www.mql5.com/ru/forum/325418/page4#comment_16116740
können Sie auch statische Klassen in MQL initialisieren.
Danke, jetzt habe ich es ausprobiert und festgestellt, dass es möglich ist, auf diese Weise auf ein Array zuzugreifen.
Um ehrlich zu sein, wir haben OOP, aber ich habe es nicht in Help gesehen. Es ist schade, dass es solche Nuancen nicht beschreibt.
Vielen Dank an alle, die geantwortet haben!