PLO. Fragen zur Anwendung - Seite 9

 

Aber das ist eigentlich nicht nötig....

Sie sollten die Virtualisierung von Funktionen nutzen

P.S. Und man kann kein normales Programm mit impliziter Typkonvertierung erstellen. Es ist nur eine Variante... wie der Operator GoTo....

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
AlexSTAL:
2) Das Wichtigste ist, sie zu löschen, bevor das Programm endet... Wenn Sie diesen Zeiger jedoch in einer Funktion erstellt haben, müssen Sie dafür sorgen, dass er an einem globalen Ort gespeichert wird...


Das habe ich mir auch gedacht, das Feld scheint global zu sein, aber es gibt eine undichte Stelle. Oder ist es nicht nur die Anordnung, die dort sein muss, sondern auch etwas anderes?

 
Du bringst mich wirklich zum Lachen ))))
 
Interesting:

Das habe ich mir auch gedacht, das Feld scheint global zu sein, aber es gibt eine undichte Stelle. Oder ist es nicht nur die Anordnung, sondern auch etwas anderes?

Nun, vielleicht haben Sie irgendwo anders ein Leck...

Ich habe Hunderte von Klassen auf diese Weise erstellt und hatte noch nie irgendwelche Lecks irgendwo....

Sie versuchen ein einfaches Beispiel....

 
TheXpert:
Sie bringen mich wirklich zum Lachen ))))
Manchmal ist es gut für dich... nervenaufreibend ....
 
AlexSTAL:

Vielleicht haben Sie ja irgendwo anders ein Leck...

Ich habe Hunderte von Klassen auf diese Weise erstellt und hatte noch nie irgendwelche Lecks irgendwo....

Versuchen Sie ein einfaches Beispiel....

Ich glaube, ich bin es losgeworden, indem ich diesen Code in den EA-Deinstallationsblock eingefügt habe (bisher keine Probleme)

  for (int i=0; i<ArraySize(ArrShapes);i++)  
  {
  ArrShapes[i].Free(ArrShapes[i]);
  }
 

Am Ende war es so, sehr unverständlich.

Mit einem Wort, es ist ein Monster... :)

Dateien:
Forum-2.mq5  11 kb
 

Wie auch immer, als Ergebnis der Diskussion über das Problem hathttps://www.mql5.com/ru/forum/3566/page6#comment_58280 einen Antrag an den SR geschickt.

 
Yedelkin:

Im Allgemeinen hathttps://www.mql5.com/ru/forum/3566/page6#comment_58280 nach einer Diskussion über das Problem einen Antrag an den SR geschickt.

1. Ich weiß es nicht, ich weiß es nicht.

Ich denke, die Entwickler werden sich nicht die Mühe machen, der Sicherheit zuliebe Funktionalität zu opfern (was in gewisser Hinsicht auch richtig ist).

Der von Aleksander(AlexSTAL) vorgeschlagene Weg könnte das Problem lösen (abgesehen davon, dass er etwas umständlich ist).

Auf diese Weise erhalten wir jedoch bestenfalls Zugang zu Ereignissen und Methoden von Nachfahren (in diesem Fall ist es unwahrscheinlich, dass Eigenschaften, Variablen und ähnliche Dinge, die nicht im Vorfahren deklariert wurden, verwendet werden).

Wahrscheinlich werden wir jedoch experimentieren müssen.


2. auf der Grundlage dessen, was wir jetzt haben, können wir etwas anderes tun, ich sehe 2 Möglichkeiten:

а. Verwenden Sie spezialisierte Arrays, die nur Objekte einer Klasse enthalten (Nachkommen eines bestimmten Typs);

In diesem Fall können Sie auf alle Eigenschaften, Methoden und Ereignisse der Objekte im Array zugreifen (da sie homogen sind);

б. Wenn es notwendig ist, mit einem Array von Objekten verschiedener Typen zu arbeiten, die Nachkommen einer Basisklasse sind, müssen Sie zusätzliche Arrays erstellen, um jeden Typ von Nachkommen zu speichern.

So erhalten wir im Hauptarray nur Zugriff auf die für alle Objekte gemeinsame Funktionalität (wenn nicht AUTOGEN und QUALDA), und in spezialisierten Arrays Zugriff auf die volle Funktionalität jedes Typs von Nachkommen.

So wie ich es verstehe, werden wir so etwas wie eine Datenbank erhalten, die aus mehreren Tabellen besteht, mit One-to-many- und Many-to-One-Verbindungsmethoden. In diesem Fall stellt sich jedoch die Frage nach der richtigen Synchronisierung der gesamten Angelegenheit. Außerdem müssen wir entscheiden, auf welcher Grundlage alle Felder (Tabellen) der improvisierten Datenbank verknüpft werden sollen.

Die Bindung kann auf eindeutigen Identifikatoren beruhen, z. B. auf Zeigern oder speziellen Handles (wie sie in Truthähnen verwendet werden).

PS

Übrigens halte ich die Idee mit den Handles für gut genug (auch wenn man Zeiger als Grundlage für die Arbeit mit Objekten nimmt). Handles sollten es ermöglichen, das einzelne Objekt von ähnlichen Objekten oder von der gesamten Liste der Objekte zu unterscheiden.

 
TheXpert:
Sie bringen mich wirklich zum Lachen ))))
Manchmal mache ich mich wirklich verrückt, und das ist manchmal auch gut so. :)