
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
Non riesco ancora a capire i puntatori e i riferimenti in MQL5 e ora in MQL4. Qual è la differenza tra passaggio per riferimento e puntatore, a parte il codice extra? C'è una differenza in C++, ma qual è qui? Se non è difficile scrivere in modo più dettagliato.
Il passaggio per riferimento richiede che l'oggetto passato per riferimento sia inizializzato. Il passaggio per puntatore non ha questa restrizione:
Quando si chiama la funzione TestShapeRef, il codice si blocca perché la forma non è inizializzata. D'altra parte, all'interno della funzione TestShapePointer, sono necessari controlli costanti per verificare se l'oggetto passato è inizializzato o meno. Pertanto, si deve seguire la regola dell'imprimatur:
C'è un'altra sottile sfumatura da tenere a mente. Considerate l'esempio precedente:
Questo programma funzionerà correttamente? No, terminerà con l'errore "accesso al puntatore non valido" alla riga printf(shape.name); //ERRORE (!?) , nonostante il fatto che sembra garantita la creazione di un oggetto nella funzione TestShapePointer. Il punto è che in realtà è stato passato un riferimento NULL al posto della forma. Cioè, la forma all'interno della funzione e quella passata sono oggetti diversi! Pertanto, dopo l'uscita dalla funzione, shape è ancora uguale a NULL e il puntatore a shape all'interno della funzione è perso (cancellato nello stack). Quindi.È possibile creare un array con oggetti di tipo diverso?
Prendiamo questo esempio:
//---
Come ottenere l'accesso ai metodi delle classi ereditate?
Come accedere ai metodi delle classi ereditarie?
Hai provato a lanciare un tipo di bersaglio?
No. È la prima volta che ne sento parlare. Dove posso leggere qualcosa al riguardo?
La solita conversione di tipo, ecco un esempio:
Hai provato a fare il casting sul tipo di destinazione?
Merda, e dopo parli di sicurezza del linguaggio?
Non sarebbe meglio usare il polimorfismo?
Funziona più o meno così: