Perguntas sobre OOP em MQL5 - página 77

 
Vladimir Simakov:

Concorda que agora é mais complicado))))

Eu não disse nada educadamente, embora eu quisesse pedir um exemplo, não para sair para um registro, mas para um arquivo - seu registro é mais prático e faz sentido, e no registro do terminal para entender o que o terminal sai, o que EA - muito inconveniente

 

Quando vamos começar a fazer os elos difíceis que a MQ ainda não tem?

 

especialistas em normas, aqui vai uma pergunta:

Enquanto ME é uma confusão com {} highlighting , copiou o código MQL em um projeto C++ vazio na VS2019, por que a VS jura isso?

struct SHash
{
  ulong hash[2];
  bool operator==(const SHash& value)const { return(this. hash[0] == value.hash[0] && this. hash[1] == value.hash[1]); }
};

escreve: "a expressão deve ser do tipo classe".

 
Igor Makanu:

especialista em normas, aqui vai uma pergunta:

Enquanto ME é uma confusão com {} highlighting , copiou o código MQL em um projeto C++ vazio na VS2019, por que a VS jura isso?

escreve: "a expressão deve ter tipo de classe".

e em C++ este é um ponteiro...

ou anular * ou especificar explicitamente ->

 
Maxim Kuznetsov:

e em C++ este é um ponteiro...

Substituir * ou especificar explicitamente ->

Eu tenho o jeito disso como em todos os artigos aqui, em geral para não escrever em nenhum lugar, não há opções dentro de construções tão simples...de jeito nenhum, imho

 
Igor Makanu:

especialistas em normas, aqui vai uma pergunta:

Enquanto ME é uma confusão com {} highlighting , copiou o código MQL em um projeto C++ vazio na VS2019, por que a VS jura isso?

escreve: "a expressão deve ser do tipo classe".

É assim que deve ser:

struct SHash
{
        long hash[2];
        bool operator==(const SHash& value)const { return(this->hash[0] == value.hash[0] && this->hash[1] == value.hash[1]); }
};
 
Andrei Novichkov:

É assim que deve ser:

Eu preciso dele em MQL, eu baixei o VS como editor, para navegar no código e ver o que eu posso ver ))))

Mas em tal estrutura para MQL - não há sentido em escrever isto?

 
Igor Makanu:

Eu preciso dele em MQL, eu baixei o VS como editor, para navegar no código e ver o que eu posso ver ))))

mas em tal estrutura para MQL - não há sentido em escrever isto ?

Preciso verificar, mas, à primeira vista, esta expressão não faz sentido, não apenas na MQL)
 
Igor Makanu:

escrevendo sempre de novo - tenho tempo (porque não vejo TV )) ) - recolhendo informações técnicas sobre características lingüísticas, OOP... Tudo em que há perguntas - o fórum está ativo, aproveito esta oportunidade "cem por cento" ;)

A questão é - para que serve passar de C# para MQL, se eu posso simplesmente chamar meu código Sharp da MQL, a menos que eu queira colocá-lo no mercado ou otimizá-lo em MQ-cloud.

Depois de toda a transição de C# para MQL, eu suponho, é realmente dolorosa ) Depois de se acostumar à conveniência e facilidade de trabalhar com objetos, onde você não precisa se preocupar com sua remoção, aqui você obtém o oposto.De qualquer forma, um OOP completo requer a presença de um contador de referência para objetos referenciados. E em C++ é resolvido com um invólucro - o apontador inteligente. Em MQL o uso de apontadores inteligentes é muito complicado devido à falta de operador ->, e outros problemas.

Portanto, se mudar de C++, tudo é mais ou menos claro: você recebe muitos inconvenientes e limitações, mas em geral algo semelhante. E até mesmo algumas vantagens (por exemplo, maior confiabilidade em tempo de execução, devido ao ambiente guiado). Mas ao sair de Sharp, não vejo nenhuma vantagem. Somente desvantagens )

 
Igor Makanu:

Tenho um jeito de enfiar este aqui, pois todos os artigos aqui escritos, em geral para não escrever em nenhum lugar, simplesmente não há opções dentro de desenhos tão simples...ponces, imho

Em geral, um estilo muito controverso é imposto aqui)))) O mesmo

return (retValue);

Por que parênteses? Não é o JS, embora você também não tenha que fazê-lo lá.

E se você realmente precisa disso e que isso esteja correto, então em vez desta macrossubstituição

#ifdef __cplusplus
   #define THIS *this
#else
   #define THIS this
#endif
Razão: