Características da linguagem mql5, subtilezas e técnicas - página 119

 
Alexey Navoykov:

E não se pode ir até ao fundo. É por isso que tudo é claro.

Apenas com a possibilidade de declarar previamente as estruturas de classes :)

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

Há menos flexibilidade.

A flexibilidade é uma perturbação da ordem em que o algoritmo é executado? )

Ilya Malev:

Apenas com a possibilidade de declarar as estruturas de classes com antecedência :)

Bem, não contradiz a lógica. Tal como uma declaração preliminar de uma função. Se algo for declarado mais cedo, também será inicializado mais cedo. Tudo está logicamente ligado.

 
Alexey Navoykov:

A flexibilidade é uma violação da ordem em que o algoritmo é executado? )

Agora o OnTick pode ser chamado de qualquer parte do programa.

 
fxsaber:

OnTick pode agora ser chamado de qualquer parte do programa.

Se precisar, pode declarar OnTick() nulo; logo no início em C++. Mas em geral a ordem de declaração de funções é um método adicional de controlo de correcção de código. Por exemplo, se em algum plug-in inluder tiver acidentalmente uma chamada OnTick() ou, pior ainda, OnInit(), é bom? As bibliotecas não devem ver o seu código de trabalho.
 
Alexey Navoykov:

Bem, não contradiz a lógica. Tal como uma declaração prévia de uma função. Se algo for declarado mais cedo, também será inicializado mais cedo. Tudo está logicamente ligado.

Pode contradizer a sua lógica, mas não contradiz a lógica comum por um segundo. Porque tudo está garantido para ser inicializado no momento em que a execução do código começa.

 
Ilya Malev:

Isto pode contradizer a sua lógica, mas não contradiz a lógica convencional por um segundo. Porque tudo está garantido para ser inicializado no momento em que o código é executado.

Parece ter lido mal o meu post. Diz que NÃO está em contradição)

 
Alexey Navoykov:

Parece não ter lido atentamente o meu post. Disse para NÃO contradizer).

É verdade, peço desculpa, isso acontece.

 
Alexey Navoykov:
Se precisar, pode declarar OnTick() nulo; logo no início, mas em geral a ordem de declaração de funções é uma forma adicional de controlar a correcção do código. Por exemplo, se em algum plug-in OnTick() ou ainda pior - OnInit() for acidentalmente chamado, é bom? As bibliotecas não devem ver o seu código de trabalho.

O que fazer ao incluir bibliotecas, cada uma das quais inclui as mesmas bibliotecas dentro de si mesma?

 
fxsaber:

O que faço quando ligo bibliotecas que cada uma liga a mesma biblioteca internamente?

Então, qual é o problema?
 
fxsaber:

O que fazer ao ligar bibliotecas, cada uma das quais liga a mesma biblioteca dentro de si mesma?

#ifndef  MQL_TOOLS_H
#define  MQL_TOOLS_H

#endif

é estranho que as directivas sejam introduzidas mas não utilizadas

Razão: