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
Ho un presupposto che non ci sarà un lotto, per esempio 0,15. Almeno io non ne ho sentito parlare. Se lo farò, lo cambierò.
So che è improbabile, ma si vuole sempre la soluzione perfetta ))))
Ok, non è il problema più grande, ma mi sono creato un problema... Volevo un OOP perfetto, ma senza chiamate inutili e tutto era ottimale
Voglio avere 5 istanze della classe, ma ho bisogno di inizializzare i campi della classe una volta - contengono ambiente terminale, che non cambierà durante l'esecuzione del programma.
string Language;
Se dichiaro static string Language; - allora ci sarà un errore unresolved static variable 'A::Language'
Ecco un esempio
Inizializzerò la stringa Language 5 volte in questo modulo - è sbagliato e non compilerà con i modificatori statici
e non c'è bisogno di avere 5 copie della variabile Lingua! - provato nella classe B a dichiarare un'istanza della classe - stessa cosa 5 Le variabili di lingua hanno
2019.08.29 12:44:58.384 tst__ EURUSD,M15: inizializzato
2019.08.29 12:44:58.384 tst__ EURUSD,M15: B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15: A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15: B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15: A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15: B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15: A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15: B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15: A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15: B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15: A::A
2019.08.29 12:44:57.989 tst__ EURUSD,M30: uninit reason 3
So che è improbabile, ma si vuole sempre la soluzione perfetta ))))
Ok, non è il problema più grande, ma mi sono creato un problema... Volevo un OOP perfetto, ma senza chiamate inutili e tutto era ottimale
Voglio avere 5 istanze della classe, ma ho bisogno di inizializzare i campi della classe una volta - contengono ambiente terminale, che non cambierà durante l'esecuzione del programma.
Se dichiaro static string Language; - allora ci sarà un errore unresolved static variable 'A::Language'
Ecco un esempio
Inizializzerò la stringa Language 5 volte in questo modulo - non è corretto, e non compila con i modificatori statici
2019.08.29 12:44:58.384 tst__ EURUSD,M15: inizializzato
2019.08.29 12:44:58.384 tst__ EURUSD,M15: B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15: A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15: B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15: A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15: B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15: A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15: B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15: A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15: B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15: A::A
2019.08.29 12:44:57.989 tst__ EURUSD,M30: uninit reason 3
OK, questa è un'opzione
Ma voglio avvolgere tutto in una classe - nel mio esempio ho la classe B e voglio 5 istanze di B, ma non voglio inizializzareLanguage 5 voltee quindi non voglio avere una variabileLanguage in ogni istanza
Come faccio a sbarazzarmi dellalingua extra?
OK, questa è un'opzione
Ma voglio avvolgere tutto in una classe - nel mio esempio ho la classe B e voglio 5 istanze di B, ma non voglio inizializzare Language 5 volte e quindi non voglio avere una variabileLanguage in ogni istanza
Come posso sbarazzarmi dellalingua extra?
Ereditare. In questo modo sarà inizializzato solo una volta.
So che è improbabile, ma si vuole sempre la soluzione perfetta ))))
Ok, non è il problema più grande, ma mi sono creato un problema... Volevo un OOP perfetto, ma senza chiamate inutili e tutto era ottimale
Voglio avere 5 istanze della classe, ma ho bisogno di inizializzare i campi della classe una volta - contengono ambiente terminale, che non cambierà durante l'esecuzione del programma.
Se dichiaro static string Language; - allora ci sarà un errore unresolved static variable 'A::Language'
Ecco un esempio
Inizializzerò la stringa Language 5 volte in questo modulo - è sbagliato e non compilerà con i modificatori statici
e non c'è bisogno di avere 5 copie della variabile Lingua! - provato nella classe B a dichiarare un'istanza della classe - stessa cosa 5 Le variabili di lingua hanno
2019.08.29 12:44:58.384 tst__ EURUSD,M15: inizializzato
2019.08.29 12:44:58.384 tst__ EURUSD,M15: B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15: A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15: B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15: A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15: B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15: A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15: B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15: A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15: B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15: A::A
2019.08.29 12:44:57.989 tst__ EURUSD,M30: uninit reason 3
Ereditare. In questa forma, sarà inizializzato solo una volta.
Funziona per me
2019.08.29 13:24:19.690 tst__ EURUSD,M15: inizializzato
2019.08.29 13:24:19.690 tst__ EURUSD,M15: B::Bru
2019.08.29 13:24:19.690 tst__ EURUSD,M15: CLang::CLang
2019.08.29 13:24:19.690 tst__ EURUSD,M15: B::Bru
2019.08.29 13:24:19.690 tst__ EURUSD,M15: CLang::CLang
2019.08.29 13:24:19.690 tst__ EURUSD,M15: B::Bru
2019.08.29 13:24:19.690 tst__ EURUSD,M15: CLang::CLang
2019.08.29 13:24:19.690 tst__ EURUSD,M15: B::Bru
2019.08.29 13:24:19.690 tst__ EURUSD,M15: CLang::CLang
2019.08.29 13:24:19.690 tst__ EURUSD,M15: B::Bru
2019.08.29 13:24:19.690 tst__ EURUSD,M15: CLang::CLang
2019.08.29 13:24:19.690 tst__ EURUSD,M15: MyTerminalInfoString
almeno myTerminalInfoString() è chiamato una volta
Quindi ho una specie di Singleton
Grazie!
Sono al telefono in questo momento. Ricordamelo in serata e ti mostrerò come risolverlo.
Ok, se non è troppo disturbo.
e il tema Singleton è abbastanza nuovo per me, c'è spazio per la creatività - esempi
Ok, se non è troppo disturbo.
e il tema Singleton è abbastanza nuovo per me, c'è spazio per la creatività - esempi
Quindi, ne avete bisogno o volete un campo comune per gli oggetti?
è difficile dire cosa voglio ))))
Lasciatemi provare a metterlo in parole:
- Voglio una classe che sia inizializzata dal costruttore e questa classe non avrà alcun metodo; lo scopo della classe è di aprire un ordine e poi chiudere e/o riaprire diversi altri ordini secondo uno script; il tipo di script è un'enumerazione
- Userò un array di istanze della classe - almeno 5
- Non voglio aprire l'ordine senza chiamare ogni volta l'ambiente terminale, quindi voglio usare SYMBOL_VOLUME_MAX, Symbol, SYMBOL_VOLUME_MIN e il numero di cifre in SYMBOL_VOLUME_STEP come valori costanti nella classe
- Voglio un uso ottimale delle variabili, cioè non voglio duplicare le costanti del paragrafo precedente.
Questo è circa come vedo il tutto, ma in generale, il problema è ora ridotto alla struttura corretta della classe stessa, come si è scoperto già devono ereditare, in modo che SYMBOL_VOLUME_MAX , Symbol,SYMBOL_VOLUME_MIN ... per avere una copia, penso che inciamperò ancora nell'output di errore, userò qualcosa come questo dal mio PrintLastError.mqhhttps://www.mql5.com/ru/code/24829#