Caractéristiques du langage mql5, subtilités et techniques - page 119

 
Alexey Navoykov:

Et tu ne peux pas aller à celui du bas. C'est pourquoi tout est clair.

Seulement avec la possibilité de déclarer les classes-structures à l'avance :)

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

Il y a moins de flexibilité.

La flexibilité est une perturbation de l'ordre d'exécution de l'algorithme ? )

Ilya Malev:

Seulement s'il vous plaît avec la possibilité de déclarer les classes-structures à l'avance :)

Eh bien, ça ne contredit pas la logique. Tout comme la déclaration préliminaire d'une fonction. Si quelque chose est déclaré plus tôt, il sera aussi initialisé plus tôt. Tout est logiquement lié.

 
Alexey Navoykov:

La flexibilité est-elle une violation de l'ordre d'exécution de l'algorithme ? )

Maintenant, OnTick peut être appelé de n'importe où dans le programme.

 
fxsaber:

OnTick peut maintenant être appelé de n'importe où dans le programme.

Si vous en avez besoin, vous pouvez déclarer void OnTick() ; au tout début du C++. Mais en général, l'ordre de déclaration des fonctions est une méthode supplémentaire de contrôle de la correction du code. Par exemple, si dans un inluder de plug-in vous avez accidentellement un appel OnTick() ou, pire encore, OnInit(), est-ce bon ? Les bibliothèques ne doivent pas voir votre code de travail.
 
Alexey Navoykov:

Eh bien, ça ne contredit pas la logique. Tout comme la déclaration préalable d'une fonction. Si quelque chose est déclaré plus tôt, il sera aussi initialisé plus tôt. Tout est logiquement lié.

Ça peut contredire votre logique, mais ça ne contredit pas une seconde la logique commune. Parce que tout est garanti comme étant initialisé au moment où l'exécution du code commence.

 
Ilya Malev:

Cela peut contredire votre logique, mais cela ne contredit pas une seconde la logique conventionnelle. Parce que tout est garanti comme étant initialisé au moment où le code est exécuté.

Vous semblez avoir mal lu mon message. Il est dit qu'il n'y a PAS de contradiction)

 
Alexey Navoykov:

Vous ne semblez pas avoir lu attentivement mon message. Il a dit de ne PAS se contredire).

C'est vrai, je m'excuse, ça arrive.

 
Alexey Navoykov:
Si vous en avez besoin, vous pouvez déclarer void OnTick() ; au tout début. Mais en général, l'ordre de déclaration des fonctions est un moyen supplémentaire de contrôler l'exactitude du code. Par exemple, si dans un inluder de plug-in OnTick() ou pire encore - OnInit() est accidentellement appelé, est-ce bien ? Les bibliothèques ne doivent pas voir votre code de travail.

Que faire lorsque l'on inclut des bibliothèques, dont chacune inclut les mêmes bibliothèques en son sein ?

 
fxsaber:

Que dois-je faire lorsque je connecte des bibliothèques qui connectent chacune la même bibliothèque en interne ?

Alors quel est le problème ?
 
fxsaber:

Que faire lorsque l'on connecte des bibliothèques, chacune d'entre elles connectant la même bibliothèque à l'intérieur d'elle-même ?

#ifndef  MQL_TOOLS_H
#define  MQL_TOOLS_H

#endif

c'est étrange que les directives soient saisies mais non utilisées

Raison: