Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Tengo la suposición de que no habrá ningún lote, por ejemplo 0,15. Al menos yo no he oído hablar de ello. Si lo hago, lo cambiaré.
Sé que es poco probable, pero uno siempre quiere la solución perfecta ))))
Vale, no es el mayor problema, pero me he creado un problema... Quería un OOP perfecto, pero sin llamadas innecesarias y que todo fuera óptimo
Quiero tener 5 instancias de la clase, pero necesito inicializar los campos de la clase una vez - contienen el entorno del terminal, que no cambiará durante la ejecución del programa.
string Language;
Si declaro la cadena estática Language; - entonces habrá un error de variable estática no resuelta 'A::Language'
aquí hay un ejemplo
Voy a inicializar el lenguaje de la cadena 5 veces en esta forma - es incorrecto y no va a compilar con modificadores estáticos
¡y no hay necesidad de tener 5 copias de la variable Idioma! - intentó en la clase B declarar una instancia de la clase - lo mismo 5 Las variables del lenguaje tienen
2019.08.29 12:44:58.384 tst__ EURUSD,M15: inicializado
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
Sé que es poco probable, pero uno siempre quiere la solución perfecta ))))
Vale, no es el mayor problema, pero me he creado un problema... Quería un OOP perfecto, pero sin llamadas innecesarias y que todo fuera óptimo
Quiero tener 5 instancias de la clase, pero necesito inicializar los campos de la clase una vez - contienen el entorno del terminal, que no cambiará durante la ejecución del programa.
Si declaro la cadena estática Language; - entonces habrá un error de variable estática no resuelta 'A::Language'
aquí hay un ejemplo
Inicializaré la cadena Language 5 veces en este formulario - no es correcto, y no compila con modificadores estáticos
2019.08.29 12:44:58.384 tst__ EURUSD,M15: inicializado
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, esa es una opción
Pero quiero envolverlo todo en una clase - en mi ejemplo tengo la clase B y quiero 5 instancias de B, pero no quiero inicializarLanguage 5 vecesy por lo tanto no quiero tener una variableLanguage en cada instancia
¿Cómo puedo deshacerme dela Lengua extra?
OK, esa es una opción
Pero quiero envolverlo todo en una clase - en mi ejemplo tengo la clase B y quiero 5 instancias de B, pero no quiero inicializar Language 5 veces y por lo tanto no quiero tener una variableLanguage en cada instancia
¿Cómo puedo deshacerme del exceso deLengua?
Heredar. De este modo, sólo se inicializará una vez.
Sé que es poco probable, pero uno siempre quiere la solución perfecta ))))
Bueno, no es el mayor problema, pero me he creado un problema... Quería un OOP perfecto, pero sin llamadas innecesarias y que todo fuera óptimo
Quiero tener 5 instancias de la clase, pero necesito inicializar los campos de la clase una vez - contienen el entorno del terminal, que no cambiará durante la ejecución del programa.
Si declaro la cadena estática Language; - entonces habrá un error de variable estática no resuelta 'A::Language'
aquí hay un ejemplo
Voy a inicializar el lenguaje de la cadena 5 veces en esta forma - es incorrecto y no va a compilar con modificadores estáticos
¡y no hay necesidad de tener 5 copias de la variable Idioma! - intentó en la clase B declarar una instancia de la clase - lo mismo 5 Las variables del lenguaje tienen
2019.08.29 12:44:58.384 tst__ EURUSD,M15: inicializado
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
Heredar. De esta forma, sólo se inicializará una vez.
A mí me funciona
2019.08.29 13:24:19.690 tst__ EURUSD,M15: inicializado
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
al menos se llama a myTerminalInfoString() una vez
Así que tengo una especie de Singleton
Gracias.
Estoy en mi teléfono ahora mismo. Recuérdamelo por la noche y te mostraré cómo resolverlo.
Vale, si no es mucha molestia.
y el tema de Singleton es bastante nuevo para mí, hay espacio para la creatividad - los ejemplos serían
Vale, si no es mucha molestia.
y el tema de Singleton es bastante nuevo para mí, hay espacio para la creatividad - los ejemplos serían
Entonces, ¿es necesario un campo común para los objetos?
es difícil decir lo que quiero ))))
Permítanme que intente expresarlo con palabras:
- Quiero una clase que sea inicializada por el constructor y esta clase no tendrá ningún método; el propósito de la clase es abrir una orden y luego cerrar y/o reabrir varias órdenes más según un script; el tipo de script es una enumeración
- Utilizaré una matriz de instancias de la clase - al menos 5
- Por lo tanto, quiero utilizar SYMBOL_VOLUME_MAX, Symbol, SYMBOL_VOLUME_MIN y el número de dígitos en SYMBOL_VOLUME_STEP como valores constantes en la clase
- Quiero un uso óptimo de las variables, es decir, no quiero duplicar las constantes del párrafo anterior.
Eso es más o menos como lo veo todo, pero en general, el problema se reduce ahora a la estructura correcta de la clase en sí, como resultó ya tienen que heredar, por lo que SYMBOL_VOLUME_MAX , Símbolo,SYMBOL_VOLUME_MIN ... para tener una copia, creo que seguiré tropezando con la salida de error, usaré algo así de mi PrintLastError.mqhhttps://www.mql5.com/ru/code/24829#