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
Quanto è bello poter leggere... :)
Anche l'approccio non è male, anche se come ho capito entrambi questi approcci sono calcolati sul trasferimento/lettura di un solo parametro (anche se di tipo diverso).
Ma come risolvere il problema, quando hai molti parametri e non puoi metterli tutti in una classe base?
Per quanto ho capito, devi inserire un indice del parametro che stai passando (puoi anche creare un array in una classe con parametri memorizzati per indice)?
Non lo capisco nemmeno io...
Nel mio esempio c'è un indice, solo che non è numerico in forma esplicita, ma un enum....
Lascia perdere, non ne vale la pena.
Interesting:
In generale, dopo una discussione sul problemahttps://www.mql5.com/ru/forum/3566/page6#comment_58280 ha inviato una domanda alla SR.
1. Non lo so, non lo so.
Non credo che gli sviluppatori faranno certi passi, sacrificando la funzionalità in nome della sicurezza (e giustamente da un lato).
Riferendo.
L'applicazione era così:Suggerimento:
1. Chiarire la sezione "Polimorfismo" nel manuale "Polimorfismo" in termini di specificare come riempire correttamente le forme di array[10] con istanze di classi derivate da CShape (fare un esempio).
2. controllare se la stringa è scritta correttamente:
3. Spiegare se mettere o meno le parentesi graffe subito dopo il nome della classe dichiarata quando si dichiarano le classi:
classe CShape{};
classe CCircle{} :public CShape
classe CSquare{} :public CShape
Risposta:
Una descrizione estesa sarà aggiunta all'Aiuto, eccone un estratto:
Supponiamo che il nostro programma usi oggetti di tipo diverso (CCircle e CSquare) ma ereditati da un tipo base CShape. Il polimorfismo ci permette di creare un array di oggetti di tipo base CShape, ma quando dichiariamo questo array, gli oggetti stessi sono ancora sconosciuti e il loro tipo è indefinito.
La decisione di quale tipo di oggetto sarà contenuto in ogni elemento dell'array sarà presa durante l'esecuzione del programma. Questo implica la creazione dinamica di oggetti per le classi corrispondenti e, quindi, la necessità di usare puntatori di oggetti invece degli oggetti stessi.
Per creare oggetti dinamicamente, si usa l'operatore new; ogni oggetto di questo tipo deve essere cancellato indipendentemente ed esplicitamente dall'operatore delete. Pertanto, dichiareremo un array di puntatori di tipo CShape e creeremo un oggetto del tipo richiesto per ciascuno dei suoi elementi(new_class_name), come è mostrato nello script di esempio:
Notate che quando cancellate un oggetto con l'operatore delete, dovreste controllare il tipo del suo puntatore. Potete cancellare solo oggetti con puntatore POINTER_DYNAMIC, otterrete un errore per puntatori di altro tipo.
Grazie per il post, abbiamo corretto №2 e №3. Sarà nelle nuove versioni di aiuto
Domanda. La libreria standard usa le seguenti linee
Il manuale di riferimento dice: " lo specificatore const non è applicabile ai membri di strutture e classi". Cosa significa usare const in un metodo di classe sopra e quali sono le regole per usarlo in questi casi?
Yedelkin:
...............
Cosa significa l'uso di const in un metodo di classe e quali sono le regole per usarlo in questi casi?
Domanda. La libreria standard usa le seguenti linee
Il manuale di riferimento dice: " lo specificatore const non è applicabile ai membri di strutture e classi". Cosa significa usare const in un metodo di classe sopra e quali sono le regole per usarlo in questi casi?
Un membro di una struttura/classe è una cosa, ma un metodo è un'altra.
Un metodo descritto come const significa che non cambia lo stato/membri della sua classe. Cioè, dopo aver chiamato un tale metodo, lo stato interno della classe rimane invariato. Si usa per dire in aggiunta al compilatore di controllare i tentativi di cambiare i membri della classe.
Unmembro di una struttura/classe è una cosa e un metodo è un'altra.
Un metodo descritto come const significa che non cambia lo stato/membri della sua classe. Cioè, lo stato interno della classe rimane invariato dopo la chiamata di questo metodo. Si usa per dire in aggiunta al compilatore di controllare i tentativi di cambiare i membri della classe.
Wow. Grazie! E mi sono scervellato.
A proposito, una domanda logica mentre siamo sull'argomento: non c'è un manuale e non è previsto?
Come potrebbe essere usato? Perché i fili non interagiscono tra loro,
Se i dati potessero essere trasferiti liberamente tra i thread, allora sì, ci sarebbe bisogno di una tale istruzione.
Buon pomeriggio.
Una tale domanda.
Sul codice sopra
Cosa ho fatto di sbagliato o è generalmente irraggiungibile in MT5?
Voglio (come penso sia ovvio) - ottenere nomi sovrascritti in variabili di nomi di file...