Errori, bug, domande - pagina 1615
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
Errore di compilazione:
Ecco un altro paio di errori:
E c'è anche qualcosa di sbagliato nella conversione dei puntatori.
Il seguente codice non si compila:
anche se qui la conversione è esplicita. Tutto funziona in C++.
E c'è anche qualcosa di incasinato nel portare i cartelli.
È giusto, il compilatore sta combattendo.
Andate a leggere su dynamic_cast, static_cast e reinterpret_cast e quando usarli correttamente e quando no.
C++ converte questo codice in reinterpret_cast e MQL in dynamic_cast. E per quanto ho capito, questo è esattamente il caso in cui il compilatore può trovare l'errore dynamiccast durante la compilazione.
reinterpret_cast è illegittimo in questo caso, quindi il fatto che questo codice compili in C++ non è un argomento.
C++ converte questo codice in reinterpret_cast e MQL in dynamic_cast. E per quanto ho capito, questo è esattamente il caso in cui il compilatore può trovare un errore dynamiccast durante la compilazione.
Reinterpret_cast è illegittimo in questo caso, quindi il fatto che questo codice compili in C++ non è un argomento.
Aspetta, perché confondi le cose? Cosa c'entra il cast dinamico? I compiti del compilatore non includono giocare a Sherlock Holmes e cercare qualcosa nella logica del programma. Esegue solo un controllo formale della conformità allo standard del linguaggio, niente di più. E tutto è corretto dal punto di vista dello standard.
Se avessi guardato attentamente il mio esempio, avresti visto che il problema era legato a protected. Se lo cambi in public, tutto è ok. L'oggetto stesso non viene cambiato a causa di questo, cioè il compilatore MQL ha solo una restrizione non necessaria, tutto qui.
Quindi non speculare e cercare un significato segreto dove non c'è, che è solo un banale errore del compilatore.