возвращает политику исполнения. - страница 4

 
prostotrader:

Нужно делать так:

спасибо)
 
А объясните пожалуйста еще, что делать в деинициализации. Я в кодах встречал, что удаляются только экземпляры классов. А переменные и массивы нужно обнулять? Что вообще это даёт? А если не удалить классы? Они останутся в памяти до выключения терминала ? или даже после? 
 
Ivan_Invanov:
А объясните пожалуйста еще, что делать в деинициализации. Я в кодах встречал, что удаляются только экземпляры классов. А переменные и массивы нужно обнулять? Что вообще это даёт? А если не удалить классы? Они останутся в памяти до выключения терминала ? или даже после? 

Удалять надо только объекты, создаваемые через new.

 
Dmitry Fedoseev:

Удалять надо только объекты, создаваемые через new.

Спасибо. А почему?
 
Ivan_Invanov:
Спасибо. А почему?

Потому что он сам не удаляется.

 
Dmitry Fedoseev:

Потому что он сам не удаляется.

А если терминал закрыть, останется?
 
Ivan_Invanov:
А если терминал закрыть, останется?

Думаю, что будет удален, но не факт. Не стоит на это надеяться. Сам создал - сам удали.

 
Dmitry Fedoseev:

Думаю, что будет удален, но не факт. Не стоит на это надеяться. Сам создал - сам удали.

Удаляется, точно, просто требуют контроль созданных объектов. Это нужно чтобы программист знал что и где он создаёт и удаляет, уменьшает вероятность ошибок связанных с утечкой памяти в процессе работы программ.
 
Спасибо всем за ответы.
 
Проясните пожалуйста ситуацию с операторами == и != . Если сравнимые переменные представлены истиной, когда они имеют любое ненулевое значение(в справке так написано). Как тогда представлены массивы? И почему в этом примере идёт сравнение "не равно двум", почему именно двум, если любое ненулевое значение это истина, если нет разницы, если бы там стояла 1, почему там написано именно 2 ? Вот код из официального примера (из советника с терминалом Moving Average 2009-2017 v1.00 строка 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. Верно ли, что любое ненулевое значение представлено истиной , когда сравнивается в операторах "=="    ,    "!=" ?

2. Как представлен массив? как его вообще можно сравнить с числом?

3. Почему в сравнении стоит "2"? Если согласно справке истина это любое ненулевое значение, тогда логично написать "1".

4. сработало ли условие if  если CopyRates получила ошибку  ?

Причина обращения: