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
Sie wollen (wie ich denke, ist offensichtlich) - um überschriebene Namen in Dateinamen-Variablen zu erhalten...
Damit Init() richtig funktioniert, muss es nach der Konstruktion des Objekts aufgerufen werden.
Oder nicht?
Ich denke, die VMT wird nur im endgültigen Code des Konstruktors initialisiert. Wenn also eine Methode im Konstruktor aufgerufen wird, wird die Methode des Variablentyps aufgerufen, nicht der Typ des zu konstruierenden Objekts.
Das sieht in etwa so aus.
Wenigstens das funktioniert:
Zu MetaQuotes: Wenn ich es richtig verstanden habe, ist es besser, den Aufruf virtueller Funktionen in Konstruktoren gänzlich zu verbieten. An.
Oder damit sie richtig funktionieren. Was ich bezweifle.
Ich lerne gerade parametrische Konstrukteure kennen. Aber es scheint, dass in dem Beispiel
Die Klammern in der hervorgehobenen Zeile sind falsch gesetzt.Ich lerne gerade parametrische Konstrukteure kennen. Aber es scheint, dass in dem Beispiel
in der hervorgehobenen Zeile sind die Klammern falsch gesetzt.Technischer Beitrag (Beginn einer kleinen Diskussion über Initialisierung, auch in Konstruktoren). Verschoben, damit es nicht unter den schweren Schritten der Neuankömmlinge verloren geht: https://www.mql5.com/ru/forum/58/page31#comment_66890
Eine Frage zur Initialisierung. In der Regel erfolgt die Initialisierung von String-Variablen und komplexen Objekten automatisch, "by default". Dadurch wird eine bestimmte Menge an Rechenleistung des Computers verschwendet (ich nenne es "Computertakt", entschuldigen Sie die laienhafte Ausdrucksweise).
Jetzt gibt es Initialisierungslisten, die es Ihnen ermöglichen, Variablen mit benutzerdefinierten Werten zu initialisieren. Gibt es einen Unterschied in der Initialisierungsgeschwindigkeit zwischen der automatischen Initialisierung und der Initialisierung mit einem benutzerdefinierten Wert? Mit anderen Worten: Erhöht sich die Anzahl der "Computeranschläge" bei der Verwendung von Initialisierungslisten (und benutzerdefinierten Werten) im Vergleich zur automatischen Initialisierung?
Und wenn wir ein paar Taktzyklen einsparen, wird das einen signifikanten Gewinn bringen? Zumal die Initialisierung einmalig erfolgt und die Werte später noch zugewiesen werden müssen.
Das ist für mich persönlich eine wichtige Frage, denn ich möchte die Technik verstehen.
Mit dem richtigen Ansatz würde alles so sein. Initialisierungslisten sind eine Folge der Einführung von parametrischen Konstruktoren.
Schauen wir uns zwei Beispiele an:
Das steht alles in den Kommentaren.
Beispiel 2:
In Variante 1 haben wir also 1 Aufruf von Init und in Variante 2 2 Aufrufe. Und da die "Gefällt mir"-Funktion sehr schwer ist, ist das Plus da.TheXpert, herzlichen Dank! Ich werde es mir ansehen.
Ich habe indirekt aus Ihren Worten verstanden, dass es keinen Geschwindigkeitsunterschied zwischen der automatischen Initialisierung von Variablen des Typs " String, dynamisches Array und komplexes Objekt" und der Benutzerinitialisierung der gleichen Variablen gibt.
Ihren Worten habe ich indirekt entnommen, dass es keinen Geschwindigkeitsunterschied zwischen der automatischen Initialisierung von Variablen des Typs " String, dynamisches Array und komplexes Objekt" und der Benutzerinitialisierung der gleichen Variablen gibt.