Discussione sull’articolo "L'Ordine di Creazione e Distruzione dell'oggetto in MQL5" - pagina 2

 

شكرا جزيلا

 

m_array[] è stato copiato dalla funzione GetPointer(arrray[i]), quindi diventa di tipo POINTER_AUTOMATICO.

Non abbiamo bisogno della riga 54:

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

perché MQL5 cancella POINTER_AUTOMATIC per voi.

 

Buon pomeriggio,


Non riesco a capire questa sezione:

//--- questo blocco non verrà eseguito se execute==false
   if(execute)
     {
      CObjectB objB;
     }
//--- questo blocco verrà eseguito se execute==false
   if(!execute)
     {
      CObjectC objC;
     }

All'inizio del codice è impostato che execute = false. Le parole: execute è uguale a false.

Il primo IF: se execute è vero, il blocco dovrebbe essere eseguito. Ma nel commento si dice che NON verrà eseguito se è VERO e si passerà al successivo.

Secondo IF: se execute è FALSO, il blocco verrà eseguito. Ma ancora una volta il commento dice che il blocco verrà ESEGUITO se è VERO.

Ho pensato che ! - è un simbolo di negazione.

Dov'è l'errore nel mio ragionamento?

 
kashi_ann:

Buon pomeriggio,


Non riesco a capire questa trama:

All'inizio del codice è impostato che execute = false. Le parole: execute è uguale a false.

Il primo IF: se execute è vero, il blocco dovrebbe essere eseguito. Ma il commento dice che NON verrà eseguito se è vero e si passerà al successivo.

Il secondo IF: se execute è FALSE, il blocco verrà eseguito. Ma ancora una volta il commento dice che il blocco verrà ESEGUITO se è Vero.

Ho pensato che ! - è un simbolo di negazione.

Dov'è l'errore nel mio ragionamento?

Ho evidenziato il suo giudizio errato. Per riferimento: 'falso' è Falso, 'vero' è Vero.

E per rendere il tutto più chiaro, ho aggiunto dei commenti:

//--- questo blocco non verrà eseguito se execute==false
//--- questo blocco sarà eseguito se execute==true
   if(execute)
     {
      CObjectB objB;
     }
//--- questo blocco verrà eseguito se execute==false
//--- questo blocco non sarà eseguito se execute==true
   if(!execute)
     {
      CObjectC objC;
     }
 
Vladimir Karputov:

Il vostro giudizio errato è evidenziato in colore. Per riferimento: "falso" è Falso, "vero" è Vero.

E per rendere il tutto più chiaro ho aggiunto dei commenti:

Quindi... le seguenti voci...

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

giusto?

 
kashi_ann:

Ok. otteniamo le seguenti note.

giusto?

Sono le basi.

 
Artyom Trishkin:

Sono le basi.

Grazie) Le basi sono la cosa più importante)

E grazie per non essere stato pigro nel rispondere)
 
kashi_ann:

Ok. otteniamo le seguenti note.

giusto?

Si dà il caso che sì, ma è chiaro che si voleva usare ==, non =.

 
Andrey Khatimlianskii:

Quindi per coincidenza sì, ma è chiaro che si voleva usare == piuttosto che =.

Nah))))) il significato e la differenza tra = e == devo ancora capirlo) sono all'inizio del mio percorso).

 
kashi_ann:

Nah)))) il significato e la differenza tra = e == devo ancora capirlo) Sono all'inizio del mio viaggio)).

"=" è un operatore di assegnazione e "==" è un operatore di confronto.