Errores, fallos, preguntas - página 1891
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
Claro que sí.
¿Está seguro? Porque dynamic_cast se utiliza más a menudo para la conversión ascendente, de padre a hijo.
Además, en MQL echa perfectamente de abajo a arriba, incluso cuando no debería:
Echa un vistazo al fragmento de código MQL5 comentado.
Sí, no debería funcionar y ya está explicado más arriba, pero no porque el reparto ascendente sea imposible.
Si lanzamos el puntero de arriba a abajo, es decir, al padre, después de lo cual pasamos el puntero a otro lugar del ámbito, ¿los campos del descendiente estarán disponibles allí?
Sí, aquí hay un ejemplo que demuestra su pregunta:
y la salida:En primer lugar, comprobamos el reparto no resuelto de abajo hacia arriba y obtenemos NULL. Esto es correcto.
Entonces creamos un objeto CLASS2, le asignamos una referencia a su clase padre (aquí es importante entender que dinámicamente el entorno sabe que el tipo original del objeto CLASS2 está almacenado en su meta-información). A continuación (sólo su pregunta), se hace un casting dinámico (con la comprobación de la conversión correcta basada en la metainformación del objeto de origen) de la referencia CLASS1 a CLASS2.
Comprobamos el resultado del casting y lo escribimos en la variable i = 1. Por último, se emite el valor de i, haciendo referencia al objeto creado originalmente.
Todo funciona correctamente y de acuerdo con la especificación (incluida la especificación dynamic_cast del propio C++).
¿Está seguro? Porque dynamic_cast se utiliza más a menudo para la conversión ascendente, de padre a hijo.
Además, en MQL echa perfectamente de abajo a arriba, incluso cuando no debería:
Exactamente:
No olvides actualizar a las últimas versiones. Actualmente estoy probando en el 1598, que fue publicado recientemente como una versión comprimida en este hilo, creo.
No olvides actualizar a las últimas versiones.
Sí, la antigua construcción.
Así es, no se puede conducir de abajo a arriba, sólo de arriba a abajo. Esto es por seguridad.
Sí, la antigua construcción.
Borra esto, es engañoso y contradice directamente el funcionamiento de dynamic_castComo parte del ejemplo de reparto de CLASE1 -> CLASE2 planteado, has acertado. Ese es el tipo de casting que la mayoría de las veces la gente tiene en la cabeza.
Además, el "no se puede lanzar de abajo a arriba, sólo de arriba a abajo" es el núcleo de la comprobación de seguridad de dynamic_cast.
Los que saben lo que hacen entienden la esencia del dynamic_casting.
No olvides actualizar a las últimas versiones. Actualmente estoy probando en el 1598, que fue publicado recientemente como un zip en este hilo creo.
¿En qué archivo exe se encuentra el compilador y el ejecutor?
Ahora mismo MT4b1080 está ejecutando MEb1599. Por favor, explica qué hacen metaeditor.exe y terminal.exe.
¿En qué archivo exe se encuentra el compilador y el ejecutor?
El MT4b1080 está ahora ejecutando MEb1599. Por favor, explica qué hacen metaeditor.exe y terminal.exe.
El compilador para ambas plataformas es el mismo. Está en metaeditor.exe
¿Y el ejecutor, que comprueba el mismo dynamic_cast, en terminal.exe?
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Bichos, errores, preguntas
fxsaber, 2017.05.11 13:26
Por qué EX5 tal código¿Pesa 5kb?