Fehler, Irrtümer, Fragen - Seite 1201
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
Ein Fehler in der Bedienung der virtuellen Funktionen
Ergebnis: A::f(), sollte B::f() sein
Hilfe bei der Installation von META TRADER 4 auf OS MAVERICKS, ALLE PROGRAMME HERUNTERGELADEN, AUF MAC SPIELEN, ALLES NEU, ALLES GEBT FEHLERHAFT.
/*Moderator: Senden Sie den Fehlertext als Datei*/
2 - Vor der Fehlersuche.
3 - danach.
Vielleicht gibt es da Unterschiede, ich verstehe überhaupt nichts)
Herzlichen Dank)
Kompilierungsfehler
während const nicht statisch folgen sollte
Außerdem handelt es sich um einen Scheinschutz, da static durch die übliche h()-Funktion geändert wird und A::f() const nicht einmal davon erfährt
Ein Fehler in der Bedienung der virtuellen Funktionen
Ergebnis: A::f(), sollte B::f() sein
Kompilierungsfehler
während const nicht statisch folgen sollte
Außerdem handelt es sich um einen Scheinschutz, da static durch die übliche h()-Funktion geändert wird und A::f() const nicht einmal davon erfährt
Kompilierungsfehler 358 in allen Fällen des Aufrufs von h( A* a)
Sie ist nur in (3) und (4) gerechtfertigt, da es sich nicht um h( const A* a)
Eine ähnliche Situation wurde früher korrigiert https://www.mql5.com/ru/forum/1111/page1218#comment_1058402 aber der Grund ist wahrscheinlich anders, da das Vorhandensein von const in der void f() const Deklaration das Auftreten von Fehlern beeinflusst und es keine Mitgliedsfunktionen gab
Er lässt sich in Build 976 nicht kompilieren (Fehler 358, unterscheidet sich aber von den zuvor beschriebenen Fehlern in Build 975).
Der Grund dafür könnte sein, dass Build 976 den Fehler behoben hat, der damit zusammenhängt, dass eine normale Funktion, die von einer const-Klassenmethode aufgerufen wird, Klassenmitglieder ändern kann, die ihr durch eine nicht-const&-Referenz übergeben werden. Hier ist der Zeiger jedoch ein Klassenmitglied und sein Wert wird beim Aufruf von h( A* a) garantiert nicht geändert, sondern kann nur bei der Deklaration von h( A* &a ) geändert werden.Lässt sich in Build 976 nicht kompilieren (Fehler 358, aber anders als zuvor beschrieben, traten in Build 975 keine Fehler auf)
Der Grund dafür könnte sein, dass Build 976 den Fehler behoben hat, der damit zusammenhängt, dass eine normale Funktion, die von einer const-Klassenmethode aufgerufen wird, Klassenmitglieder ändern kann, die ihr durch eine nicht-const&-Referenz übergeben werden. Hier ist der Zeiger jedoch ein Klassenmitglied und sein Wert wird garantiert nicht geändert, wenn h( A* a) aufgerufen wird, sondern kann nur geändert werden, wenn h( A* &a ) deklariert wird.