Fehler, Irrtümer, Fragen - Seite 2719

 
fxsaber:

Constructor nur, weil man ein const-Feld nicht ohne ihn initialisieren kann. Struktur oder Klasse - das macht keinen Unterschied. Die Hauptsache ist, dass man ein Objekt hat.

Es liegt an Ihnen.


 
Vict:

Es liegt an Ihnen.

Ich bin nicht der Meinung, dass Staufelder im Widerspruch zur allgemeinen Praxis stehen.

 
Informationen zu Fehlern in den Aufrufprioritäten von überladenen Template-Funktionenwurden aktualisiert und ergänzt.
 
fxsaber:

Ich bin nicht der Meinung, dass die Konstantenfelder im Widerspruch zur allgemeinen Praxis stehen.

Nein )), ich dachte nur, es sollte sich an den Strukturen orientieren. Warum also die Mühe mit Krücken? Es ist recht elegant, ein Array zu erstellen, eine Schleife zu bilden und set() auszuführen. Wenn es einen Fehler in der Logik gibt (wiederholter Aufruf irgendwo), kommt es zu einem Absturz.

class A {
    int a;
public:
    A() : a(INT_MAX) {}
    void set(int aval) {if (a != INT_MAX) abort(); a = aval;}
    int get() {return a;}
};
 
Vict:

Ich denke, es lohnt sich nicht, seine Nase in den Sumpf eines anderen zu stecken.

 
Sergey Dzyublik:

Ich denke, es lohnt sich nicht, seine Nase in den Sumpf eines anderen zu stecken.

Junkie? fxsaber hat mich um Rat gefragt, ich habe es ihm gesagt.

 
fxsaber:

Meiner Meinung nach ist es logisch, eine Konstante für Felder zu schreiben, die nach der Erstellung niemals geändert werden (und auch nicht geändert werden sollten).

Nein. Sie bilden nur in sehr seltenen Fällen Staufelder. Und nicht für einfache Typen.

 
Vict:

Ein Junkie? fxsaber fragte um Rat, ich antwortete.

Halten Sie es einfach und die Leute werden sich an Sie wenden...

 
Koldun Zloy:

Nein. Konstante Felder werden nur in sehr seltenen Fällen erstellt. Und nicht für einfache Typen.

Ein einfaches Beispiel. Sie benötigen eine Reihe von MAUs mit voreingestellten Zeiträumen.

Jedes von ihnen ist ein Objekt eines Typs. Es ist klar, dass ein Objekt eines Typs durch seinen Zeitraum eindeutig festgelegt ist. Deshalb wäre es logisch, sie zu einer Konstante zu machen.


Andere Sprachen erstellen einfach ein Array von Zeigern. Diese Freiheit gibt es bei MQL nicht.

 
Koldun Zloy:

Nein. Konstante Felder werden nur in sehr seltenen Fällen erstellt. Und nicht für einfache Typen.

Wissen Sie, wie der MQL-Optimierer und Compiler eingestellt sind?
Wie können Sie so sicher sein, dass Konstantenfelder einfacher Typen nicht zu diesem Zweck verwendet werden?