Fehler, Irrtümer, Fragen - Seite 1707
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
Dem Zeiger wird rvalue zugewiesen, der dann mit new A überschrieben wird.
Wo? Genau hier?
this[0] = new A;
Hier gibt operator[] den in der Zelle Data[0] enthaltenen Wert zurück. Kein Verweis auf diese Zelle oder ein Zeiger auf sie, sondern nur eine Kopie des in dieser Zelle enthaltenen Wertes, d. h. rvalue. Diesem Exemplar kann natürlich nichts zugeordnet werden. Ich verstehe nicht, wie operator= dies ändern soll.
Und das letzte Beispiel verstehe ich immer noch nicht. Durch Überladen des "="-Operators in der Klasse A wird this[0] von rvalue zu lvalue... Ich weiß nicht, wie. Ist das eine Art MCL-Funktion, bei den Profis gibt es ein solches Verhalten nicht.fxsaber, wie sind Sie überhaupt zu diesem Konstrukt gekommen? Ich meine Überlastung = in A. Oder durch Versuch und Irrtum?
Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests
Bibliotheken: TypeToBytes
fxsaber, 2016.09.21 21:25
Veröffentlicht. Jetzt funktioniert für jede Variable (Struktur oder Standardtyp) nicht nur das Lesen wie bei Array, sondern auch das Schreiben:
_W(AnyVariable)[Pos] = AnyValue; // Записывает по байтовому смещению Pos значение AnyValue в переменную AnyVariable
Das war vor der Implementierung nicht leicht zu erraten - wahrscheinlich erwies es sich als guter Test für durchschnittliche OOP-Kenntnisse: Ich kenne nur die Klassiker für Klassen.
Wenn jemand etwas Ähnliches kennt, bitte den Link zur Aufklärung weitergeben.
Das habe ich mit vollem Verständnis getan. Sonst hätte ich so etwas nicht geschrieben.
Sie verstehen also alles, können es aber nicht aussprechen? )) Ich verstehe.
Wo? Genau hier?
this[0] = new A;
Hier gibt operator[] den in der Zelle Data[0] enthaltenen Wert zurück. Kein Verweis auf diese Zelle oder ein Zeiger auf sie, sondern nur eine Kopie des in dieser Zelle enthaltenen Wertes, d. h. rvalue. Diesem Exemplar kann natürlich nichts zugeordnet werden. Ich verstehe nicht, wie operator= in der Klasse A dies ändert.
Vielleicht geht es um die gleichen Probleme mit Verweisen in MCL.
Es könnte sich herausstellen, dass es nicht der Wert ist, der hier zurückgegeben wird, sondern ein Verweis darauf, d.h. lvalue... Aber warum kann ihm nicht gleich ein neuer Wert zugewiesen werden, warum brauchen wir operator= in der Klasse A? Ich verstehe das nicht...
Wahrscheinlich geht es in MKL um dieselben Referenzmaterialien.
Es könnte sich herausstellen, dass hier kein Wert zurückgegeben wird, sondern ein Verweis auf ihn, d.h. lvalue... Aber warum kann ihm nicht gleich ein neuer Wert zugewiesen werden, warum brauchen wir operator= in der Klasse A? Ich verstehe das nicht...
Wenn Sie einem rvalue-Zeiger etwas zuweisen, wird der Zeiger automatisch in eine Objektreferenz umgewandelt. Nun, wir sind alle gestern geboren!
Ich habe den Desk schon lange danach gefragt, aber sie sagen, es sei nicht sicher, obwohl es nicht gefährlicher ist als die Übergabe von Argumenten per Referenz.
Wenn Sie einem rvalue-Zeiger etwas zuweisen, wird der Zeiger automatisch in eine Objektreferenz umgewandelt. Das ist wie gestern, nicht wahr?
Typ-Fehlanpassung
MqlTick time_msc - lang.
CopyTicks von - ulong.