Aprender e escrever juntos em MQL5 - página 33

 

Precisamos de passar a inicialização para a lista de inicialização.

Apenas as constantes integrais estáticas podem ser inicializadas na declaração (pelo menos em C++, ainda não sei em MQL5 :) )

 
Mais uma pergunta, a última. Qual é a razão pela qual "" e NULL para as cordas não são equivalentes?
 
Interesting:

Por falar em aves.

E qual será a resposta do compilador a isto? E responderá ao seguinte '=' - utilização de cessão ilegal

O compilador estava desabotoado - '=' - utilização de cessão ilegal.

Tenho uma pergunta. O que acontecerá se o programador (neste caso, eu) não inicializar as variáveis antes de as utilizar (faz o que o compilador requer e omite este momento no construtor)?


A forma correcta de inicializar os membros das estruturas/classes no(s) construtor(es):

//Struct StrMQL4_Deal
struct StrMQL4_Deal
{
//----------------------------------------------------------------------------//
double TP;
double SL;
//----------------------------------------------------------------------------//
StrMQL4_Deal():TP(0),SL(0) { }
StrMQL4_Deal(double  tp,double  sl):TP(tp),SL(sl) { }
};
 
TheXpert:
Mais uma pergunta, a última. Qual é a razão pela qual "" e NULL para as cordas não são equivalentes?
NULL significa que a cadeia não é atribuída e "" a cadeia é atribuída e tem um valor.
 
mql5:

rubricar adequadamente a estrutura/classe de membros no(s) construtor(es):

Sim, apercebi-me disso há mais de um ano, pelo menos desde 2010 que o tenho feito.
 
Interesting:
Sim, descobri que há mais de um ano, pelo menos desde 2010 que o tenho feito dessa forma.

Não o poderia ter feito correctamente desde 2010, porque a lista de inicialização foi introduzida muito recentemente :) .

mql5:

NULL significa que a cadeia não é atribuída e "" a cadeia é atribuída e tem um valor.

OK, vou pôr as coisas de outra forma. Qual é o objectivo de introduzir o estado de string "não distribuído" ao utilizador? Pode ser utilizado de alguma forma útil ou é apenas uma muleta?
 
TheXpert:
Não o poderia ter feito correctamente desde 2010, pois a lista de inicialização só recentemente foi introduzida :) .
significado no construtor.
 
TheXpert:

Não o poderia ter feito correctamente desde 2010, uma vez que a lista de inicialização foi introduzida muito recentemente :) .


Referia-me à inicialização na construção de classes e declaração como

//----------------------------------------------------------------------------//
double TP;
double SL;
//----------------------------------------------------------------------------//
Não me lembro exactamente, mas comecei a trabalhar com objectos no início de 2010 (primeiro trimestre, não posso dizer exactamente; e é enfadonho procurar fontes). Antes disso estava ocupado com bibliotecas e a estudar as noções básicas da MQL5 (ou melhor, tratava de questões de migração MQL5).
 
Rosh:
Fazer uma função de sobrecarga em diferentes tipos de dados da matriz.
Oops, já percebi. Portanto, não há uma forma universal. A questão surgiu porque a sobrecarga resulta em funções idênticas com apenas uma(!) diferença - no cabeçalho da função, quando se tem de especificar um tipo de matriz. Não exactamente puro, mas o que posso fazer, vou deixar as coisas assim. Esperava que houvesse uma saída, como no Manual de Referência.
 

Um guião simples como este dá-me resultados estranhos

void OnStart()
  {
   for(uchar u=120;u<136;u++)
     {
       switch(u>254)
        {
          case  true: Print(u,">254 - true");  break;
          case false: Print(u,">254 - false"); break;
        }
     }
  }

Talvez alguém possa explicar qual é a razão? Quando o número 254 é explicitamente convertido em uchar, funciona como pretendido.

Razão: