Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 119

 
Alexey Navoykov:

Und man kann nicht in die unterste gehen. Deshalb ist alles klar.

Nur bitte mit der Möglichkeit, Klassen-Strukturen im Voraus zu deklarieren :)

class A;
class B{A*a;};
class A{};
 
fxsaber:

Es gibt weniger Flexibilität.

Flexibilität ist eine Unterbrechung der Reihenfolge, in der der Algorithmus ausgeführt wird? )

Ilya Malev:

Nur bitte mit der Möglichkeit, Klassen-Strukturen im Voraus zu deklarieren :)

Nun, das widerspricht nicht der Logik. Genauso wie eine vorläufige Deklaration einer Funktion. Wenn etwas früher deklariert wird, wird es auch früher initialisiert. Alles ist logisch miteinander verbunden.

 
Alexey Navoykov:

Ist Flexibilität ein Verstoß gegen die Reihenfolge, in der der Algorithmus ausgeführt wird? )

Jetzt kann OnTick von überall im Programm aufgerufen werden.

 
fxsaber:

OnTick kann nun von jeder beliebigen Stelle im Programm aufgerufen werden.

Wenn Sie es brauchen, können Sie void OnTick(); ganz am Anfang in C++ deklarieren. Aber im Allgemeinen ist die Reihenfolge der Funktionsdeklaration eine zusätzliche Methode zur Kontrolle der Korrektheit des Codes. Wenn Sie zum Beispiel in einem Plug-in versehentlich OnTick() oder - noch schlimmer - OnInit() aufrufen, ist das gut? Die Bibliotheken dürfen Ihren Arbeitscode nicht sehen.
 
Alexey Navoykov:

Nun, das widerspricht nicht der Logik. Genauso wie eine vorherige Deklaration einer Funktion. Wenn etwas früher deklariert wird, wird es auch früher initialisiert. Alles ist logisch miteinander verbunden.

Das mag Ihrer Logik widersprechen, aber es widerspricht nicht eine Sekunde lang der allgemeinen Logik. Denn es ist garantiert, dass alles initialisiert ist, wenn die Ausführung des Codes beginnt.

 
Ilya Malev:

Das mag Ihrer Logik widersprechen, aber es widerspricht nicht eine Sekunde lang der herkömmlichen Logik. Denn zum Zeitpunkt der Ausführung des Codes ist garantiert alles initialisiert.

Sie scheinen meinen Beitrag falsch verstanden zu haben. Er sagt, dass er NICHT im Widerspruch steht)

 
Alexey Navoykov:

Sie scheinen meinen Beitrag nicht aufmerksam gelesen zu haben. Er sagte, man solle NICHT widersprechen).

Das ist richtig, ich entschuldige mich, das kommt vor.

 
Alexey Navoykov:
Wenn Sie es brauchen, können Sie void OnTick(); ganz am Anfang deklarieren. Aber im Allgemeinen ist die Reihenfolge der Deklaration von Funktionen ein zusätzlicher Weg, um die Korrektheit des Codes zu kontrollieren. Wenn zum Beispiel in einem Plug-in-Inluder OnTick() oder - noch schlimmer - OnInit() versehentlich aufgerufen wird, ist das gut? Die Bibliotheken dürfen Ihren Arbeitscode nicht sehen.

Was ist zu tun, wenn Bibliotheken einbezogen werden, von denen jede die gleichen Bibliotheken in sich selbst einschließt?

 
fxsaber:

Was mache ich, wenn ich Bibliotheken verbinde, die intern alle dieselbe Bibliothek verbinden?

Wo liegt also das Problem?
 
fxsaber:

Was ist zu tun, wenn Bibliotheken verbunden werden, von denen jede die gleiche Bibliothek in sich selbst verbindet?

#ifndef  MQL_TOOLS_H
#define  MQL_TOOLS_H

#endif

Es ist seltsam, dass die Direktiven eingegeben, aber nicht verwendet werden.