devolve a política de execução. - página 4

 
prostotrader:

Você tem que fazer isso assim:

obrigado)
 
E, por favor, explique também o que fazer na desinicialização. Eu vi no código que apenas instâncias de classes são excluídas. E as variáveis e arrays precisam ser zeradas? De que adianta, afinal? E se as classes não forem eliminadas? Eles permanecerão na memória até que o terminal seja desligado ou mesmo depois?
 
Ivan_Invanov:
E, por favor, explique também o que fazer na desinicialização. Eu vi no código que apenas instâncias de classes são excluídas. E as variáveis e arrays precisam ser zeradas? De que adianta, afinal? E se as classes não forem eliminadas? Eles permanecerão na memória até que o terminal seja desligado ou mesmo depois?

Somente os objetos criados via novo devem ser excluídos.

 
Dmitry Fedoseev:

Somente os objetos criados via novo devem ser excluídos.

Obrigado. Por quê?
 
Ivan_Invanov:
Obrigado. E por que isso acontece?

Porque ela não se remove sozinha.

 
Dmitry Fedoseev:

Porque ela não se remove sozinha.

E se você fechar o terminal, ele fica?
 
Ivan_Invanov:
E se você fechar o terminal, ele vai ficar?

Acho que será removido, mas não com certeza. Não alimente suas esperanças. Você o cria, você o apaga.

 
Dmitry Fedoseev:

Acho que será removido, mas não com certeza. Não alimente suas esperanças. Você o cria, você o apaga.

É apagado, exatamente, eles só precisam controlar os objetos criados. Isto é necessário para um programador saber o que e onde ele cria e elimina, reduz a probabilidade de erros associados a vazamentos de memória durante a operação dos programas.
 
Obrigado a todos por suas respostas.
 
Favor esclarecer a situação com os operadores == e != . Se variáveis comparáveis são representadas como verdadeiras quando têm qualquer valor diferente de zero (para ajudar é escrito assim). Como as arrays são representadas então? E por que neste exemplo há uma comparação "não igual a dois", por que exatamente dois, se algum valor não zero é verdadeiro, se não há diferença, se era 1, por que diz exatamente 2 ? Aqui está o código do exemplo oficial (da Moving Average 2009-2017 v1.00 linha 132).
MqlRates rt[2];
//--- go trading only for first ticks of new bar
   if(CopyRates(_Symbol,_Period,0,2,rt)!=2)
     {
      Print("CopyRates of ",_Symbol," failed, no history");
      return;
     }

1. É verdade que qualquer valor não zero é verdadeiro quando comparado nos operadores "==" , "!=" ?

2. Como é representada uma matriz? Como ela pode ser comparada a um número?

3. Por que existe um "2" na comparação? Se de acordo com a ajuda a verdade é qualquer valor não zero, então é lógico escrever "1".

4. a condição se CopyRates recebeu um erro?