
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
Todavía no entiendo acerca de los punteros y referencias en MQL5 y ahora en MQL4. ¿Cuál es la diferencia entre pasar por referencia y puntero a excepción de código extra? Hay una diferencia en C ++, pero ¿qué es aquí? Si no es difícil de escribir más detallada.
Pasar por referencia requiere que el objeto pasado por referencia sea inicializado. Pasar por puntero no tiene esta restricción:
Al llamar a la función TestShapeRef, el código se bloqueará porque la forma no está inicializada. Por otro lado, dentro de la función TestShapePointer, se requieren comprobaciones constantes de si el objeto pasado está inicializado o no. Por lo tanto, siga la regla imprírica:
Hay otro matiz sutil que debe tener en cuenta. Considere el ejemplo anterior:
¿Funcionará correctamente este programa? No, terminará con el error "invalid pointer access" en la línea printf(shape.name); //ERROR (!?) , a pesar de que parece que tenemos garantizada la creación de un objeto en la función TestShapePointer. La cuestión es que en realidad se pasó una referencia NULL en lugar de shape. Es decir, ¡la forma dentro de la función y la forma pasada son objetos diferentes! Por lo tanto, después de salir de la función, shape sigue siendo igual a NULL, y el puntero shape dentro de la función se pierde (se borra en la pila). Por lo tanto.¿Es posible crear un array con objetos de distintos tipos?
Tomemos este ejemplo:
//---
¿Cómo acceder a los métodos de las clases heredadas?
¿Cómo acceder a los métodos de las clases herederas?
¿Has probado a lanzar un tipo de objetivo?
No. Es la primera vez que oigo hablar de ello. ¿Dónde puedo leer sobre ello?
La conversión de tipo habitual, he aquí un ejemplo:
¿Has probado a hacer un casting al tipo de destino?
Mierda, ¿y hablas de seguridad lingüística después de eso?
¿No sería mejor utilizar el polimorfismo?
Es algo así: