Discusión sobre el artículo "La Orden de Creación y Destrucción de Objetos en MQL5" - página 2

 

شكرا جزيلا

 

m_array[] se copió de la función GetPointer(arrray[i]), por lo que se convierten en tipo POINTER_AUTOMATIC.

No necesitamos la linea 54

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

porque MQL5 borra POINTER_AUTOMATIC por ti.

 

Buenas tardes,


No puedo entender esta sección:

//--- este bloque no se ejecutará si execute==false
   if(execute)
     {
      CObjectB objB;
     }
//--- este bloque se ejecutará si execute==false
   if(!execute)
     {
      CObjectC objC;
     }

Al principio del código se pone que ejecutar = false. Las palabras: ejecutar es igual a falso.

El primer IF: si execute es true, el bloque debería ejecutarse. Pero en el comentario dice que NO se ejecutará si es TRUE y pasará al siguiente.

Segundo IF: si execute es FALSE, el bloque se ejecutará. Pero de nuevo el comentario dice que el bloque se EJECUTARÁ si es VERDADERO.

¡Supuse que ! - es un símbolo de negación.

¿Dónde está el error en mi razonamiento?

 
kashi_ann:

Buenas tardes,


No puedo entender esta trama:

Al principio del código se pone que ejecutar = false. Las palabras: ejecutar es igual a falso.

El primer IF: si execute es true, el bloque debería ejecutarse. Pero el comentario dice que NO se ejecutará si es True y pasará al siguiente.

Segundo IF: si execute es FALSE, el bloque se ejecutará. Pero de nuevo el comentario dice que el bloque se EJECUTARÁ si es True.

¡Supuse que ! - es un símbolo de negación.

¿Dónde está el error en mi razonamiento?

He resaltado tu juicio erróneo. Como referencia: 'falso' es Falso, 'verdadero' es Verdadero.

Y para que quede más claro, he añadido comentarios:

//--- este bloque no se ejecutará si execute==false
//--- este bloque se ejecutará si execute==true
   if(execute)
     {
      CObjectB objB;
     }
//--- este bloque se ejecutará si execute==false
//--- este bloque no se ejecutará si execute==true
   if(!execute)
     {
      CObjectC objC;
     }
 
Vladimir Karputov:

Tu juicio erróneo se resalta en color. Como referencia: "falso" es Falso, "verdadero" es Verdadero.

Y para hacerlo más claro he añadido comentarios:

Así que... las siguientes entradas...

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

¿correcto?

 
kashi_ann:

De acuerdo. obtenemos las siguientes notas.

¿verdad?

Es lo básico.

 
Artyom Trishkin:

Es lo básico.

Gracias.) Lo básico es lo más importante)

Y gracias por no ser perezoso para responder)
 
kashi_ann:

De acuerdo. obtenemos las siguientes notas.

¿verdad?

Pues resulta que sí, pero está claro que querías usar ==, no =.

 
Andrey Khatimlianskii:

Así que casualmente sí, pero está claro que querías usar == en lugar de =.

Nah))))) el significado y la diferencia entre = y == todavía tengo que averiguar) Estoy al principio de mi viaje).

 
kashi_ann:

Nah)))) el significado y la diferencia entre = y == todavía tengo que averiguarlo)) Estoy al principio de mi viaje)).

"=" es un operador de asignación y "==" es un operador de comparación.