E per favore spiegate anche cosa fare nella deinizializzazione. Ho visto nel codice che vengono cancellate solo le istanze delle classi. E le variabili e gli array devono essere azzerati? A cosa serve, comunque? Cosa succede se le classi non vengono cancellate? Rimarranno in memoria fino allo spegnimento del terminale o anche dopo?
Ivan_Invanov: E per favore spiegate anche cosa fare nella deinizializzazione. Ho visto nel codice che vengono cancellate solo le istanze delle classi. E le variabili e gli array devono essere azzerati? A cosa serve, comunque? Cosa succede se le classi non vengono cancellate? Rimarranno in memoria fino allo spegnimento del terminale o anche dopo?
Solo gli oggetti creati tramite new dovrebbero essere cancellati.
Penso che sarà rimosso, ma non con certezza. Non si faccia illusioni. Lo crei e lo cancelli.
È cancellato, esattamente, hanno solo bisogno di controllare gli oggetti creati. Questo è necessario per un programmatore per sapere cosa e dove crea e cancella, riduce la probabilità di errori associati a perdite di memoria durante il funzionamento dei programmi.
Si prega di chiarire la situazione con gli operatori == e != . Se le variabili comparabili sono rappresentate come vere quando hanno un qualsiasi valore non zero (in aiuto è scritto così). Come vengono rappresentati gli array allora? E perché in questo esempio c'è un confronto "non uguale a due", perché esattamente due, se qualsiasi valore non zero è vero, se non c'è differenza, se fosse 1, perché dice esattamente 2? Ecco il codice dell'esempio ufficiale (da Moving Average 2009-2017 v1.00 linea 132).
MqlRates rt[2];
//--- go trading only for first ticks of new barif(CopyRates(_Symbol,_Period,0,2,rt)!=2)
{
Print("CopyRates of ",_Symbol," failed, no history");
return;
}
1. È vero che qualsiasi valore non nullo è vero se confrontato negli operatori "==" , "!=" ?
2. Come viene rappresentato un array? Come può essere paragonato a un numero?
3. Perché c'è un "2" nel confronto? Se secondo l'aiuto la verità è un qualsiasi valore non zero, allora è logico scrivere "1".
4. La condizione se CopyRates ha ottenuto un errore?
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Dovete farlo in questo modo:
E per favore spiegate anche cosa fare nella deinizializzazione. Ho visto nel codice che vengono cancellate solo le istanze delle classi. E le variabili e gli array devono essere azzerati? A cosa serve, comunque? Cosa succede se le classi non vengono cancellate? Rimarranno in memoria fino allo spegnimento del terminale o anche dopo?
Solo gli oggetti creati tramite new dovrebbero essere cancellati.
Solo gli oggetti creati tramite new dovrebbero essere cancellati.
Grazie. E perché?
Perché non si rimuove da solo.
Perché non si rimuove da solo.
E se si chiude il terminale, rimarrà?
Penso che sarà rimosso, ma non con certezza. Non si faccia illusioni. Lo crei e lo cancelli.
Penso che sarà rimosso, ma non con certezza. Non si faccia illusioni. Lo crei e lo cancelli.
1. È vero che qualsiasi valore non nullo è vero se confrontato negli operatori "==" , "!=" ?
2. Come viene rappresentato un array? Come può essere paragonato a un numero?
3. Perché c'è un "2" nel confronto? Se secondo l'aiuto la verità è un qualsiasi valore non zero, allora è logico scrivere "1".
4. La condizione se CopyRates ha ottenuto un errore?