Características del lenguaje mql5, sutilezas y técnicas - página 119

 
Alexey Navoykov:

Y no puedes ir a la de abajo. Por eso todo está claro.

Sólo por favor con la posibilidad de declarar las clases-estructuras de antemano :)

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

Hay menos flexibilidad.

La flexibilidad es una alteración del orden de ejecución del algoritmo? )

Ilya Malev:

Sólo por favor con la posibilidad de declarar las clases-estructuras por adelantado :)

Bueno, no contradice la lógica. Al igual que la declaración previa de una función. Si algo se declara antes, también se inicializará antes. Todo está conectado lógicamente.

 
Alexey Navoykov:

¿Es la flexibilidad una violación del orden de ejecución del algoritmo? )

Ahora OnTick puede ser llamado desde cualquier parte del programa.

 
fxsaber:

Ahora se puede llamar a OnTick desde cualquier parte del programa.

Si lo necesitas, puedes declarar void OnTick(); al principio en C++. Pero en general el orden de declaración de las funciones es un método adicional de control de la corrección del código. Por ejemplo, si en algún inluder del plug-in tienes accidentalmente una llamada OnTick() o, peor aún, OnInit(), ¿es bueno? Las bibliotecas no deben ver tu código de trabajo.
 
Alexey Navoykov:

Bueno, no contradice la lógica. Al igual que una declaración previa de una función. Si algo se declara antes, también se inicializará antes. Todo está conectado lógicamente.

Puede que contradiga tu lógica, pero no contradice la lógica común ni un segundo. Porque se garantiza que todo está inicializado en el momento en que se inicia la ejecución del código.

 
Ilya Malev:

Esto puede contradecir su lógica, pero no contradice la lógica convencional ni por un segundo. Porque se garantiza que todo está inicializado en el momento en que se ejecuta el código.

Parece que has interpretado mal mi post. Dice que NO se contradice)

 
Alexey Navoykov:

Parece que no has leído bien mi post. Decía que NO hay que contradecir).

Es cierto, me disculpo, eso pasa.

 
Alexey Navoykov:
Si lo necesita, puede declarar void OnTick(); al principio. Pero en general el orden de declaración de las funciones es una forma adicional de controlar la corrección del código. Por ejemplo, si en algún plug-in inluder OnTick() o incluso peor - OnInit() es llamado accidentalmente, ¿es bueno? Las bibliotecas no deben ver su código de trabajo.

¿Qué hacer cuando se incluyen bibliotecas, cada una de las cuales incluye las mismas bibliotecas dentro de sí misma?

 
fxsaber:

¿Qué hago cuando conecto bibliotecas que conectan internamente la misma biblioteca?

¿Cuál es el problema?
 
fxsaber:

¿Qué hacer cuando se conectan bibliotecas, cada una de las cuales conecta la misma biblioteca dentro de sí misma?

#ifndef  MQL_TOOLS_H
#define  MQL_TOOLS_H

#endif

es extraño que las directivas se introduzcan pero no se utilicen

Razón de la queja: