Fehler, Irrtümer, Fragen - Seite 1891
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
Ja, sicher.
Sind Sie sicher? Denn dynamic_cast wird am häufigsten für die Bottom-up-Konvertierung verwendet, also vom Elternteil zum Nachkommen.
Außerdem gießt er bei MMS perfekt von unten nach oben, auch wenn er das nicht sollte:
Werfen Sie einen Blick auf das besprochene MQL5-Codefragment.
Ja, es sollte nicht funktionieren, und das wurde bereits oben erklärt, aber nicht, weil ein Bottom-up-Cast unmöglich ist.
Wenn wir den Zeiger von oben nach unten, d.h. auf den Elternteil, werfen und dann den Zeiger an eine andere Stelle im Geltungsbereich weitergeben, sind dann die Felder des Nachkommens dort verfügbar?
Ja, hier ist ein Beispiel, das Ihre Frage veranschaulicht:
und Ausgabe:Zuerst prüfen wir den ungelösten Wurf von unten nach oben und erhalten NULL. Das ist richtig.
Dann erstellen wir ein CLASS2-Objekt und weisen seiner Elternklasse eine Referenz darauf zu (hier ist es wichtig zu verstehen, dass die Umgebung dynamisch weiß, dass der ursprüngliche Typ des CLASS2-Objekts in seinen Metainformationen gespeichert ist). Dann (nur Ihre Frage) dynamisch Cast (mit Konvertierung Recht Prüfung auf der Grundlage der Quelle Objekts Metainformationen) von Referenz CLASS1 zu CLASS2.
Wir überprüfen das Ergebnis des Castings und schreiben es in die Variable i = 1. Schließlich geben wir den Wert von i aus und verweisen auf das ursprünglich erstellte Objekt.
Alles funktioniert korrekt und gemäß der Spezifikation (einschließlich der dynamic_cast-Spezifikation von C++ selbst).
Sind Sie sicher? Denn dynamic_cast wird am häufigsten für die Bottom-up-Konvertierung verwendet, also vom Elternteil zum Nachkommen.
Außerdem gießt er bei MMS perfekt von unten nach oben, auch wenn er das nicht sollte:
Ganz genau:
Vergessen Sie nicht, auf die neuesten Builds zu aktualisieren. Ich teste derzeit mit der Version 1598, die kürzlich als gezippte Version in diesem Thread veröffentlicht wurde.
Vergessen Sie nicht, auf die neuesten Builds zu aktualisieren.
Ja, die alte Version.
Das stimmt, man kann nicht von unten nach oben fahren, sondern nur von oben nach unten. Dies geschieht aus Gründen der Sicherheit.
Ja, die alte Version.
Dies ist irreführend und widerspricht direkt der Funktionsweise von dynamic_castIm Rahmen des angesprochenen Kopf-an-Kopf-Casting-Beispiels KLASSE 1 -> KLASSE 2 haben Sie es richtig gemacht. Das ist die Art von Casting, die die meisten Leute in ihrem Kopf haben.
Auch ist es die "Sie können nicht von unten nach oben werfen, nur von oben nach unten", dass der Kern der dynamic_cast Sicherheitsprüfung ist.
Diejenigen, die wissen, was sie tun, verstehen das Wesentliche von dynamic_cast.
Vergessen Sie nicht, auf die neuesten Builds zu aktualisieren. Ich teste derzeit die Version 1598, die vor kurzem als Zip-Datei in diesem Thread gepostet wurde, glaube ich.
In welcher Exe-Datei befinden sich der Compiler und der Executor?
Im Moment läuft MT4b1080 mit MEb1599. Bitte erklären Sie, was metaeditor.exe und terminal.exe tun.
In welcher Exe-Datei befinden sich der Compiler und der Executor?
Auf dem MT4b1080 läuft jetzt MEb1599. Bitte erklären Sie, was metaeditor.exe und terminal.exe tun.
Der Compiler für beide Plattformen ist derselbe. Sie befindet sich in metaeditor.exe
Und der Executor, der denselben dynamic_cast überprüft, in terminal.exe?
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Wanzen, Wanzen, Fragen
fxsaber, 2017.05.11 13:26
Warum EX5 ein solcher CodeWiegt es 5kb?