Errores, fallos, preguntas - página 1889
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
¿Es esto un error o me estoy perdiendo algo? Un EA parabólico normal coloca una orden de stop en el punto anterior, en el caso de compra con el spread tomado en cuenta.
Y así el precio (Ask) ha alcanzado el precio de la orden 57781, pero la orden no se abre.
¿Cuál es el error de ejecución?
si lo haces de esta manera:
es decir, la conversión a padre, entonces todo va correctamente, aparentemente se han producido cambios muy significativos en la estructura del lenguaje y ahora el tipo derivado no es definitivamente un tipo ancestro.
Comprobado en C++:
Casting un objeto de una clase padre a una derivada se maneja correctamente, es decir, hay un error en el mecanismo de MQL5 con el casting de tipos, a menos que no fue diseñado de esa manera.
Cuál es el error de ejecución
Si no se comprueba lo que devuelve dynamic_cast, no tiene sentido utilizarlo.
si haces esto:
es decir, la conversión a padre, entonces todo va correctamente, aparentemente se ha producido un cambio muy significativo en la estructura del lenguaje y ahora el tipo derivado no es inequívocamente un tipo antecesor.
Si no se comprueba lo que devuelve dynamic_cast, no tiene sentido utilizarlo.
Gracias, en mi ejemplo devuelve NULL. ¿Por qué ocurre esto?
¿Podría dar un ejemplo práctico de cómo utilizar este truco?
Los desarrolladores lo utilizan sólo en Graphic.mqh de la siguiente manera
Al mismo tiempo tienen definiciones de clases/objetos como esta
Es decir, pasan un puntero padre a un hijo. Pues eso es exactamente lo que hago en mi ejemplo. ¿Dónde está el problema?
Un puntero a una clase padre puede contener en realidad un puntero a una descendiente.
Un puntero a una clase padre puede contener en realidad un puntero a una descendiente.
Gracias, lo tengo.
Sigo sin entender por qué en MQL no se puede castear un puntero a un tipo de puntero de clase descendiente, pero en C++ sí es posible, ¿podrías explicar si es un error de MQL o debería ser así?
es posible en C++, ¿puede explicar si es un error en MQL o debe ser?