Errori, bug, domande - pagina 1357
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
A proposito, non capisco questo codice, in quale posto sarà chiamato operator==? È solo un confronto tra due longs, tutto qui
...
IsEqualPointer può essere un modello o una funzione generale simile a ::GetPointer
Non ti capisco per niente, potresti spiegare in linguaggio umano cosa stai cercando di fare? Il codice dato ha degli errori (operator== non ha né argomento, né valore di ritorno), è difficile capire qualcosa da tutto questo.
Lasciate che vi dica subito che il problema di confrontare/assegnare i puntatori non è mai esistito prima, GetPointer(a)==GetPointer(b) è sufficiente per questo. Quindi il compito riguarda solo il confronto/assegnazione degli oggetti stessi, cioè è garantito per eseguire queste operazioni indipendentemente dal fatto che questi oggetti siano rappresentati da puntatori o riferimenti
Il codice che hai dato ha degli errori (operator== non ha argomento o valore di ritorno), è difficile capire qualcosa da tutto questo.
GetPointer(a)==GetPointer(b) causerà a.operator==( b )
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 dell'ingombrante GetPointer). L'asterisco è un must, e non c'è niente nel linguaggio per sostituirlo.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.
Sono d'accordo, sicuramente solleverò la questione e ne discuteremo.
Perché dovrebbe essere così?
...
Se equiparate operator== con operator<, anche il risultato sarà lo stesso.
Non hai nemmeno controllato quello che suggerisci! Proprio come nel caso precedente, quando c'erano errori evidenti nel codice, cioè non hai nemmeno provato a compilarlo. Hai abbozzato qualcosa su una manovella, qualche tuo pensiero, tipo "mangia finché sono gentile, senza pietà"... Non facciamo queste sciocchezze.
Io stesso confronto costantemente i puntatori e gli operatori di sovraccarico, e non è mai successo quello che stai sognando ora. E ora avendo controllato il tuo codice, non è successo nessun miracolo, operator== non viene eseguito come dovrebbe essere.
Quindi ora, avendo controllato il vostro codice, non è successo nessun miracolo, l'operator== non parte come dovrebbe.
Il punto della frase è precisamente che dovrebbe essere innescata.
A cosa serve? È sottosopra.
Ha più senso il contrario: < e > dovrebbero causare il confronto dei puntatori.