Обсуждение статьи "Порядок создания и уничтожения объектов в MQL5" - страница 2

 

شكرا جزيلا

 

m_array[] были скопированы из функции GetPointer(arrray[i]), поэтому они становятся типа POINTER_AUTOMATIC.

Нам не нужна строка 54:

 if(CheckPointer(m_array[i])==POINTER_DYNAMIC) delete(m_array[i]);

потому что MQL5 удаляет POINTER_AUTOMATIC за вас.

 

Добрый день,


Ни как не могу понять этот участок:

//--- этот блок не выполнится, если execute==false
   if(execute)
     {
      CObjectB objB;
     }
//--- этот блок выполнится, если execute==false
   if(!execute)
     {
      CObjectC objC;
     }

В начале кода задается что execute = false. Словами: execute равно false.

Первый ЕСЛИ: если значение execute ИСТИНА, то блок должен выполниться. Но в комменте написано что он НЕ выполниться если ИСТИНА и перейдет к следующему.

Второй ЕСЛИ: если значение execute ЛОЖЬ, то блок выполнется. Но опять же в комменте написано что блок ВЫПОЛНИТЬСЯ если ИСТИНА.

Я полагала что ! - это символ отрицания.

Где ошибка в моих рассуждениях?

 
kashi_ann:

Добрый день,


Ни как не могу понять этот участок:

В начале кода задается что execute = false. Словами: execute равно false.

Первый ЕСЛИ: если значение execute ИСТИНА, то блок должен выполниться. Но в комменте написано что он НЕ выполниться если ИСТИНА и перейдет к следующему.

Второй ЕСЛИ: если значение execute ЛОЖЬ, то блок выполнется. Но опять же в комменте написано что блок ВЫПОЛНИТЬСЯ если ИСТИНА.

Я полагала что ! - это символ отрицания.

Где ошибка в моих рассуждениях?

Выделил цветом Ваше ошибочное суждение. Для справки: 'false' - ЛОЖЬ, 'true' - ПРАВДА.

И чтобы было понятнее добавил комментариев:

//--- этот блок не выполнится, если execute==false
//--- этот блок выполнится, если execute==true
   if(execute)
     {
      CObjectB objB;
     }
//--- этот блок выполнится, если execute==false
//--- этот блок не выполнится, если execute==true
   if(!execute)
     {
      CObjectC objC;
     }
 
Vladimir Karputov:

Выделил цветом Ваше ошибочное суждение. Для справки: 'false' - ЛОЖЬ, 'true' - ПРАВДА.

И чтобы было понятнее добавил комментариев:

так... получается следующие записи...

if(execute = true) и if(execute) - тожественны?
if(execute = false) и if(!execute) - тоже?

верно?

 
kashi_ann:

так... получается следующие записи...

верно?

Это азы.

 
Artyom Trishkin:

Это азы.

Спасибо) Азы - это самое важное)

И спасибо, что не поленились ответить)
 
kashi_ann:

так... получается следующие записи...

верно?

Так совпало, что да, но вы явно хотели использовать ==, а не =.

 
Andrey Khatimlianskii:

Так совпало, что да, но вы явно хотели использовать ==, а не =.

Не))) со смыслом и различием = и == мне еще предстоит разобраться) Я в самом начале пути)

 
kashi_ann:

Не))) со смыслом и различием = и == мне еще предстоит разобраться) Я в самом начале пути)

"=" это оператор присвоения, а "==" - оператор сравнения.