MQL5 Der Compiler unterscheidet nicht zwischen einer Klasse und einem Zeiger auf sie - Seite 9

 
fxsaber:

War sicher, dass dies nicht in der MMS war! Ich frage mich, woher die Beine in meinem Kopf kommen...

Ich frage mich, ob es in KB oder in der Dokumentation auch nur ein einziges Beispiel dafür gibt? Ich habe dummerweise keinen gesehen...

Solche Zufälle sind selten, denn ein berühmt-berüchtigter Kerl aus diesem und anderen Foren hat mir im Herbst geantwortet, dass Zeiger solche Zeiger sind, dass sie Grundtypen sind und was man von ihnen nehmen kann... Aber jetzt funktioniert es, und das ist auch gut so.

 
fxsaber:

Ich war mir ziemlich sicher, dass das nicht im MMS stand! Ich frage mich, woher die Beine in meinem Kopf so gewachsen sind, nicht nur bei mir...

Er ist nicht der einzige.

 
fxsaber:

Ich frage mich, ob es in der KB oder der Dokumentation auch nur ein einziges Beispiel dafür gibt? Hast du dummerweise nicht bemerkt...

Nur dies gefunden

Forum für Handel, automatisierte Handelssysteme und Strategietests

Fehler, Irrtümer, Fragen

Ilyas, 2018.11.22 09:37

Als Übergangslösung können Sie den Operator '!' verwenden. (logisch nicht)

class A {};

A* a = NULL;

bool b1 = !!a && true;
bool b2 = true && !!a;


Wir werden über eine Lösung nachdenken (können wir das Verhalten jetzt ändern, wenn es eine große Anzahl von Codes gibt?)
Es ist möglich, dass für einen Zeiger eine bool-Konvertierung eine Operation auf den Zeiger und nicht auf das Objekt, auf das er zeigt, sein würde.

In diesem Fall müssen wir den Code wie folgt schreiben, um die Operation am Objekt durchzuführen

class A {};

A* a = NULL;

bool b1 = * a && true;
bool b2 = true && * a;

Auch die Geisteroperatoren wollen wir hinzufügen, aber diese Aufgabe hat (sehr) geringe Priorität
 
fxsaber:

Nur dies gefunden

22.11.2018? Drei Jahre, ja, ja, ja...

 
Ilya Malev:

22.11.2018? Drei Jahre, jep jep jep....

Es handelte sich nicht um die Ankündigung einer Funktion, sondern um ein Beispiel, wie sie zu verwenden ist.

 
fxsaber:

Dies war keine Ankündigung einer Funktion, sondern ein Beispiel für ihre Verwendung.

es nicht zu erklären, ist einfach unschicklich...

 

Hier ist ein aktuelles Zitat

Ilyas:

Die Dereferenzierungsoperation (Abrufen des echten Zeigers vom Handle) ist "interner" (nicht benutzerdefinierter) und teurer Code (im Vergleich zu einem nicht vorhandenen Code).

Es ist natürlich gut möglich, dass die Verwaltung etwas ganz anderes gemeint hat...

In der Dokumentation findet sich jedoch nichts über diesen Vorgang. Es ist unrealistisch, dass eine Operation 3 Jahre lang funktioniert hat und sich dies nicht in der Hilfe oder im Forum niedergeschlagen hat.

 
fxsaber:

Ich habe nur dies gefunden

Ich erinnere mich, dass A100 und ich vor langer Zeit in demselben Thread nach der Hinzufügung der Operatoren * und & gefragt haben, und sie wurden hinzugefügt.
 
Hier ist ein Link zu dieser Diskussion. Wie sich herausstellte, sind es fast 3,5 Jahre her. Wie die Zeit vergeht...
 
Alexey Navoykov:
Hier ist ein Link zu dieser Diskussion. Wie sich herausstellte, ist das schon fast 3,5 Jahre her. Wie die Zeit vergeht...

Und wie viel mehr Zeit verging, bis diese Maßnahmen tatsächlich eingeführt wurden... Das weiß wahrscheinlich nur der Wind. Und so kann es passieren, dass ziemlich wichtige Dinge jahrelang im Forum angesprochen werden, ohne dass man viel Erfolg hat.