Diskussion zum Artikel "Die Reihenfolge der Erstellung und Zerstörung von Objekten in MQL5" - Seite 3
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
In der Datei localvar_testscript_4.mq5
Wenn wir nach dem Aufruf von GetPointer() den Zeigertyp ausgeben, erfahren wir, dass die Zeiger POINTER_AUTOMATIC und nicht POINTER_DINAMIC sind.
Daher wird diese Zeile nie ausgeführt
<quote.
In dieser Reihenfolge der Deklaration wird items_array zerstört, bevor das array [5] zerstört wird. In der Funktion Destroy(), die vomitems_array Destruktor aufgerufen wird, wird mit Zeigern auf noch vorhandene Objekte gearbeitet, so dass keine Fehler auftreten.
Hallo zusammen!
An dieser Stelle verstehe ich die Logik überhaupt nicht. =)
Immerhin vergleichen wir in der Destroy-Methode den Typ unseres Zeigers mit einem dynamischen Typ. Und unser Typ ist automatisch. Daher wird der Löschoperator nicht verwendet.
Aber das ist auch nicht nötig, denn automatisch erstellte Objekte werden automatisch gelöscht.
Und schließlich hat die Datei vergessen, den Typ des Rückgabewerts void für die Methoden Destroy und SetArray in der Phase der Implementierung von Methoden außerhalb der Klasse anzugeben, weshalb sie einen Fehler ausgibt.
Neulinge (wie ich) mögen sich erschrecken =)