Errori, bug, domande - pagina 1356
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Molto bello e soprattutto ideologicamente corretto. Due mani a favore!
Ma questo non viene fatto per la semplice ragione che porterebbe notevoli inconvenienti, e il vantaggio sarebbe solo la correttezza ideologica
Allora la stringa è anche un insieme di numeri specifici. E un'immagine è anche un numero e un impulso elettrico su un chip...
In generale, studiare ingegneria elettrica, collega.
Ecco un confronto tra i puntatori in C++ e i descrittori in MQL/C# e alcuni altri linguaggi.
La sfida: vuoi chattare dal vivo con un amico.
1. Suggerimenti. Conosciamo la via, il numero civico e l'appartamento. Andiamo all'indirizzo, svegliamo l'amico, prendiamo una bolla, lui è eccitato e chiacchiera )).
2. Descrittori. Non conosciamo l'indirizzo esatto, nessuno è autorizzato ad entrare nella casa, per esempio, è l'edificio del FSB. C'è un punto di controllo nella casa, che si rifiuta di dire l'indirizzo per nome di un amico (per descrittore), si rifiuta di far entrare la casa (nello spazio degli indirizzi). La sicurezza chiama l'amico e gli chiede di uscire. Lui esce, tu tiri fuori allegramente la bolla, lui sibila, -che cosa sei!!!! mettila via immediatamente!!! Così tanto per camminare... Camminando verso casa con una bottiglia non aperta in mano, ti rendi conto in modo stridente che i descrittori forniscono sicurezza in cambio di capacità di segnalazione.
In generale, studiare ingegneria elettrica, collega.
Nessun altro argomento?
Ho frammenti di codice in cui i puntatori sono esplicitamente convertiti in numeri (per interfacciarsi con sistemi esterni di scrittura/lettura, e per l'analisi degli errori e il debug), se questo è vietato allora la flessibilità sarà ridotta e dovrò rifare.
A proposito, che ne dite di introdurre gli operatori * e & in MQL per permettere l'accesso esplicito a un oggetto nel primo caso, e prendere un puntatore a un oggetto nel secondo (invece del macchinoso GetPointer). L'asterisco è un must, e non può essere sostituito da nulla nel linguaggio.Senza di esso, è impossibile controllare situazioni come quella descritta da A100 sopra, quando invece degli oggetti stessi vengono eseguite alcune azioni del puntatore. Personalmente, questo è un problema costante, devo stare costantemente all'erta o specificare A.operator=(B), A.operator!=(B) ovunque, cioè si perde la brevità, e l'overloading degli operatori diventa effettivamente senza senso.
Ho già sollevato questo problema una volta, ma l'argomento si è arenato. Finiamo finalmente questo problema.
Domanda sulle variabili esterne.
Ho affrontato una situazione in cui la variabile esterna cambia durante l'esecuzione del programma, ma quando il timeframe viene cambiato, riprende il valore impostato nella finestra delle proprietà. Per esempio, se prima dell'inizio imposto TradeEnable a EnableAll e cambio il valore in EnableBuy durante l'esecuzione del programma, allora quando il grafico cambia in un altro timeframe il valore tornerà a EnableAll. Il valore che definisco nell'evento timer e l'output attraverso Comment, non ci può essere alcun errore.
La variabile TradeEnable non è influenzata dal capovolgimento dei grafici. Leggete il manuale - A differenza delle variabili di input, i valori delle variabili esterne possono essere cambiati programmaticamente mentre il programma è in esecuzione.
Ecco come sono impostati OnDeinit e OnInit.
Domanda: Non capisco qualcosa o il cambiamento di TradeEnable è un errore di runtime?
Finiamo finalmente questo numero.
Due operatori vi sono sacrificati (== e !=) per preservare tutti gli altri.
Vedo una via d'uscita in uno schema.
Se operator==(!=) è definito, sarà chiamato. Se non è definito, i puntatori saranno confrontati all'uguaglianza. E se operator==(!=) è definito ed è necessario confrontare i puntatori sull'uguaglianza, questo può essere fatto attraverso il template specificato.
I cambiamenti al sistema esistente sono minimi e la cosa principale è che non influiranno su coloro che semplicemente confrontano i puntatori all'uguaglianza senza sovraccarico operator==(!=).
Due operatori vi sono sacrificati (== e !=) per preservare tutti gli altri.
Vedo una via d'uscita in uno schema.
Se operator==(!=) è definito, sarà chiamato. Se non è definito, i puntatori saranno confrontati all'uguaglianza. E se operator==(!=) è definito ed è necessario confrontare i puntatori sull'uguaglianza, questo può essere fatto attraverso il template specificato.
I cambiamenti nel sistema esistente sono minimi e la cosa principale è che non influiranno su coloro che semplicemente confrontano i puntatori senza sovraccarico operator==(!=).
Naturalmente, potete fare il confronto e l'assegnazione attraverso funzioni separate, ma a che scopo? Il punto è convincere gli sviluppatori a fare una soluzione adeguata.