Fehler, Irrtümer, Fragen - Seite 3106

 

Widersprüche:

struct X {
    X() : i( 1 ) {}
    const int i;
};
void OnStart()
{
    X x1[1] = {};    //(1) нормально ???
    X x2[1];
    ZeroMemory( x2 );//(2) Error: 'x2' - not allowed for objects with protected members or inheritance
}

Was ist der grundlegende Unterschied zwischen (1) und (2)?

 
A100 #:

Widersprüche:

Was ist der grundlegende Unterschied zwischen (1) und (2)?

1 ist die Initialisierung bei der Deklaration, 2 ist (im Allgemeinen) die Änderung.

 
JRandomTrader #:

1 ist die Initialisierung bei der Deklaration, 2 ist (im allgemeinen Fall) die Änderung.

Wenn x1[0].i Null sein kann, warum kann es dann nicht auch x2[0].i sein? Inwiefern ist es schlimmer?

Hier ein vereinfachtes Beispiel eines Widerspruchs:

void OnStart()
{
    X x1[1] = {};    //(1) нормально ???
    X x3 = { 0 };    //(3) Error: 'x3' - cannot be initialized with initializer list
}
 
A100 #:

Hier ist ein vereinfachtes Beispiel für einen Widerspruch:

Und hier ist noch einer:

void OnStart()
{
    X x1[1] = {};    //(1) нормально ???
    X x2[1];
    Print( x1[0].i == x2[0].i );
}

Ergebnis: false

in Erwägung nachstehender Gründe:

 
Fehler: Die Software hat unverständlicherweise eine Transaktion in Rubel 365₽->338₽ (40 Aktien) berechnet und statt -1020₽ einen Verlust von 148 $ angezeigt.
Wenn jemand weiß, was getan werden kann, bitte ich um einen Rat.
Dateien:
 

Hilfe von den Experten :

struct Y
  {
   int               i;
                     Y(const Y & p): i(p.i) {}
  };

void OnStart()
{
  Y y(y);               // UB?
}

Ist es UB oder was?

 
Interner Compiler-Fehler
union X {
    struct XX {char i;} s;
    int i;
} x[1] = {};
void OnStart() {}
5. mit {}
 
mktr8591 #:

Ist es UB oder was?

Dies ist ein Compilerfehler - theoretisch sollte es einen Fehler bei der Kompilierung geben, weil in MQL

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Fehler, Irrtümer, Fragen

A100, 2020.09.30 16:54

Das widerspricht Ihrem eigenen Konzept, dass eine Variable als deklariert gilt, wenn die Deklaration abgeschlossen ist. Warum haben Sie es überhaupt erfunden? Wenn es in einem Fall so und in einem anderen Fall anders ist

Wenn Sie OnStart wie folgt umschreiben:

void OnStart()
{
  Y y = y; //Error: 'y' - undeclared identifier
}
dann reagiert der Compiler nach der Theorie der
 
A100 #:

Dies ist ein Compiler-Fehler - theoretisch sollte es einen Fehler in der Kompilierungsphase geben, weil in MQL

wenn Sie OnStart wie folgt umschreiben:

dann reagiert der Compiler gemäß der Theorie

Ganz genau.

Ich danke Ihnen!

 

Hat jemand herausgefunden, wie man die Standardbibliothek verwendet, um die Priorität des Panels zu erhöhen?

Ich habe den Code aus dem Beispiel von hier übernommen.

In der Animation können Sie sehen, dass die Klicks auf die Schaltfläche die Klick-Ereignisse für die Linie abfangen, wenn Sie ein Panel und dann eine Trendlinie erstellen und diese unter die Schaltfläche legen. Die Schaltfläche wird ignoriert.

Ich habe versucht, die Priorität für die Schaltfläche wie folgt festzulegen: m_button3.ZOrder(100) - aber das hilft nicht.

Es gibt auch eine CWnd::BringToTop()-Methode, die ich für das gesamte Panel und separat für die Schaltfläche festgelegt habe. Aber es ist nicht ganz klar, wie es funktionieren soll, wie man es richtig aufruft und diese Priorität setzt. Das Aufheben der Paarung beim Aufrufen dieser Methode zeigt, dass m_id immer gleich -1 ist, obwohl es die Objekt-ID ist, dem Kommentar nach zu urteilen, aber m_name scheint zu zeigen, dass es sich um das Objekt handelt.


Wenn jemand eine Lösung hat, bitte ich um einen Tipp, wo ich suchen kann.

Grund der Beschwerde: