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
1. La funzionalità discendente non è disponibile. Non so chi o come, ma personalmente non ho mai avuto accesso a SetRadius() e SetSide() dall'Array.Forse c'è un modo per risolvere il problema con autogenous, ma voglio farne a meno.
2. Forse sto lavorando male con i puntatori, ma o ho una perdita per tutto il tempo o devo colpire i puntatori proprio nel blocco dove viene fatto il lavoro principale.
Posso fare un esempio?
È solo che l'esempio che ho dato è stato preso dalla documentazione e non è chiaro come dovrebbe funzionare...
Ecco come funziona. Ma completamente fuori dalla documentazione :/ (Ma ancora una volta mi sono esercitato sui puntatori)
Eseguire:
può essere fatto molto più semplicemente... virtualizzazione:
Non è di questo che sto parlando. Non stiamo parlando di usare semplicemente dei puntatori, stiamo parlando di un array di questi puntatori con un tipo di classe base.
Non importa se è un semplice array o un array di puntatori, solo ciò che è scritto nella classe base funziona ed è disponibile.
O forse mi manca qualcosa.
Per esempio, una classe base leggermente modificata (progettata come struttura)
Se stipiamo tutta questa roba nell'array, avremo accesso almeno alle funzionalità dichiarate nella classe base.
La domanda è come accedere alla funzionalità per discendente se l'array è di tipo di classe base (cioè l'array è di tipo CShape)?
Non è di questo che sto parlando. Non stiamo parlando di usare semplicemente dei puntatori, ma di un array di questi puntatori con un tipo di classe base.
La domanda è come accedere alla funzionalità da un discendente se l'array è di tipo classe base (cioè l'array è di tipo CShape)?Ho scritto nell'ultima pagina come:
Stesso codice, solo con un array:
È così che funziona. Ma completamente fuori dalla documentazione :/
Eseguire:
Per qualcosa del genere:
dovrebbe essere strappato con la confisca della tastiera.
In C++, ci si può muovere attraverso la gerarchia delle classi con dynamic_cast, che non piace neanche lì. In MQL, può causare crash impliciti che non possono essere facilmente risolti, perché il bug è in un posto completamente diverso.
Pertanto, sconsiglio vivamente di usare questo tipo di conversione. Cioè, a tutti. Agli antenati per favore, ai bambini ni.
Per qualcosa del genere:
Dovresti togliere le mani e farti confiscare la tastiera.
In C++, ci si può muovere attraverso la gerarchia delle classi usando dynamic_cast, e anche lì non piace. In MQL può causare crash impliciti che non possono essere facilmente risolti, perché il bug è in un posto completamente diverso.
Pertanto, sconsiglio categoricamente di usare una tale conversione. Cioè, per niente. Agli antenati per favore, non ai bambini.
Qual è il modo educato di rispondere....
Se il programmatore è troppo stupido, allora una semplice operazione 1+1 può causare crash impliciti....
E voglio sottolineare che MQL5 non è C++...
Questa è solo una possibilità, non una questione di applicazione....
Stesso codice, solo con un array:
1. Rimuovere m_radius() dall'antenato, non è nell'esempio. :) E non otterrete alcun lavoro con esso in OnStart();
2. la linea delete Base[0] può essere spostata da qualche altra parte? Diciamo, se non è uno script ma un gufo e ho ancora bisogno dei dati nell'array.
Ho subito delle perdite di memoria. Ho dovuto passare alle strutture per questo motivo...
1. Rimuovere m_radius(), non è presente nell'esempio. E non ottenere alcun lavoro con esso in OnStart();
2. posso spostare la linea delete Base[0] da qualche altra parte? Diciamo, se non è uno script ma un gufo, e ho ancora bisogno dei dati nell'array.
Ho subito una perdita di memoria. Ho dovuto passare alle strutture per questo motivo...
1) Rimosso, funziona:
2) L'importante è cancellarlo prima che il programma finisca... Ma se avete questo puntatore creato in una funzione, dovete preoccuparvi di salvarlo in un posto globale...