Generische Klassenbibliothek - Bugs, Beschreibung, Fragen, Nutzungsmöglichkeiten und Vorschläge - Seite 27
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Wozu legt man Sammlungen an, für Sammlungen und das automatische Löschen von Objekten?) Ich habe überhaupt nichts über den manuellen Betrieb gesagt. Woher haben Sie das?)
Studieren Sie STL und Sie werden verstehen, wovon ich spreche.
wie man richtig kopiert, können Sie ein Beispiel für diese Vorlage geben?
Ich habe die Hilfe verwendet, um die AddValue-Methodehttps://www.mql5.com/ru/docs/basis/types/classes zu schreiben.
Ich habe mir das Hirn zermartert, aber ich sehe keine andere Lösung in MQL, als ich in meinem Beispiel geschrieben habe!
Zeigen Sie mir Ihre Implementierung der korrekten Datenspeicherung.
Aber diese Lösung ist ohnehin falsch. Eine normale Lösung ist die Verwendung einer STL-Datei. In Ihrem Fall std::list.
Ich denke, MQL5 schränkt das nicht ein. Sie können versuchen, STL-Quellen aus demselben VS in MQL zu übersetzen
Das ist es, was ich in Ihrem Fall meine.
Aber es ist trotzdem die falsche Lösung. Die normale Lösung besteht darin, etwas wie STL zu verwenden. In Ihrem Fall std::list.
Ich glaube nicht, dass MQL5 es nicht einschränkt. Sie können versuchen, den STL-Quellcode von VS nach MQL zu übersetzen
Noch einmal: MQL ist nicht C++,
und ein Zeiger auf ein Objekt in MQL ist in der Tat ein Handle, und ein Zeiger in C++ ist eine physische Speicheradresse.
welchen Sinn hat es, C++-Bibliotheken auf MQL zu portieren?
Noch einmal: MQL ist nicht C++,
und ein Zeiger auf ein Objekt in MQL ist in der Tat ein Handle, und ein Zeiger in C++ ist eine physische Speicheradresse
welchen Sinn hat es, C++-Bibliotheken auf MQL zu portieren?
Die Entwurfsmuster ordnungsgemäß zu implementieren, anstatt mit Hilfe von Generika potenzielle Probleme zu schaffen.
Sie werden überrascht sein, aber die Zeiger für das Betriebssystem sind ebenfalls virtuell. Man muss sie immer noch in physische umwandeln, aber das ist eine ganz andere Ebene der Arbeit mit Zeigern.
Sie werden nicht in der Lage sein, 1 in 1 zu portieren, aber ich denke, Sie werden in der Lage sein, ein abgespecktes C++03 zu portieren. Unterstützung von Vorlagen und Operatoren ist verfügbar.
1. Es mag Sie überraschen, aber auch Zeiger für das Betriebssystem sind virtuell. Sie müssen noch in physische Daten umgewandelt werden, aber das ist eine ganz andere Ebene der Zeigerverwaltung.
2. Sie werden nicht in der Lage sein, 1 in 1 zu portieren, aber Sie werden in der Lage sein, das abgespeckte C++03 zu portieren. Auch die Unterstützung von Vorlagen und Operatoren ist vorhanden.
1. ich würde nicht überrascht sein
2) Nun, hier ist die Wahrheit - selbst wenn man sich zusammentut und eine Portierung von C++ vornimmt, wird sie immer noch Fragen aufwerfen, aber warum nicht wie im Original? - Was ist der Grund dafür?
Es gibt eine Standard-Bibliothek von MQL, mit ihm zumindest eine Art von Garantie, dass die Unterstützung von den Entwicklern in der Zukunft zur Verfügung gestellt werden. Ich habe bereits ein paar Mal verbrannt - ich verwendet Grafik-Komponenten aus Artikeln vor ein paar Jahren geschrieben, es ist einfach zu bedienen, ähnlich wie die Arbeit mit Delphi-Komponenten, aber wenn ich begann zu versuchen, mehr ernsthafte Projekte zu implementieren, bekam ich eine Menge Fragen und keine Antwort vom Autor des Artikels
Ich weiß nicht mehr, wer von den prominenten Programmierern sagte, aber etwas in der Art: der Code sollte nicht schön oder lesbar sein, er muss seine Aufgabe erfüllen
als unsere Diskussion, wenn ich mich nicht irre, wollten Sie eine Struktur mit Ihren Daten in Listen speichern, zeigte ich Ihnen meine Implementierung, die ich für die gleiche Aufgabe entwickelt - funktioniert meine Implementierung? - verursacht es Laufzeitfehler in MQL-Programmen? - Ich bin gespannt, im Laufe des Gesprächs herauszufinden
Andrey Pogoreltsev:
C++03 ist möglich, denke ich. Unterstützung für Vorlagen und Operatoren ist verfügbar.
Nun ja, viel Glück ))
Der Code muss nicht schön oder lesbar sein, er muss seine Aufgabe erfüllen
Das gilt nur so lange, bis Sie es verfeinern wollen.
Ich habe bereits auf diesen Fehler in der Klasse CLinkedList hingewiesen, aber ich wiederhole ihn noch einmal. Die Anfangs- und Endknoten der Liste sind zueinander geschlossen: Next des letzten Knotens zeigt auf den ersten Knoten, während Previous des ersten Knotens auf den letzten zeigt. Dadurch wird die Standardsuchschleife zu einer Endlosschleife:
In C# wird so ein Unsinn natürlich nicht beachtet. Das Next des letzten Knotens ist Null, ebenso wie dasPrevious des ersten Knotens.
Ich weiß nicht, ob es sich um eine von den Entwicklern erfundene "Funktion" handelt (obwohl ich ihren Nutzen nicht sehe), aber auf jeden Fall sollte das Verhalten der Bibliothek dem ursprünglichen entsprechen.
Ich habe bereits auf diesen Fehler in der Klasse CLinkedList hingewiesen, aber ich wiederhole ihn noch einmal. Die Anfangs- und Endknoten der Liste sind zueinander geschlossen: Next des letzten Knotens zeigt auf den ersten Knoten, während Previous des ersten Knotens auf den letzten zeigt. Dadurch wird die Standardsuchschleife zu einer Endlosschleife:
In C# gibt es natürlich keinen solchen Unsinn: Das Next des letzten Knotens ist Null, ebenso wie dasPrevious des ersten Knotens.
Ich weiß nicht, ob dies eine von den Entwicklern erfundene "Funktion" ist (obwohl ich keinen Nutzen darin sehe), aber auf jeden Fall sollte das Verhalten der Bibliothek dem Original entsprechen.
Was zum Teufel ist hier los? Sie löschen vollkommen gute LinkedList-Beiträge. Einfach so, irgendwo in Europa, löscht ein anonymer Moderator Beiträge von verhassten Russen und kichert dabei bösartig. Was für ein Schrott, da hat man keine Lust zu schreiben.