Estructuras y uniones
Una estructura es el tipo de objeto más fácil de entender, así que empezaremos con ella nuestra introducción a la programación orientada a objetos. Las estructuras tienen mucho en común con las clases, que son los principales bloques de construcción en la programación orientada a objetos, por lo que el conocimiento de las estructuras nos ayudará en el futuro cuando pasemos a las clases. Al mismo tiempo, las estructuras presentan ciertas diferencias, algunas de las cuales pueden considerarse limitaciones y otras, ventajas. En particular, las estructuras no pueden tener funciones virtuales, pero pueden utilizarse para la integración con DLL de terceros.
La elección entre estructuras y clases en la implementación del algoritmo se basa tradicionalmente en los requisitos de acceso a los elementos del objeto y la presencia de lógica empresarial interna. Si se necesita un contenedor sencillo con datos estructurados y no es necesario comprobar si su estado es correcto (en programación esto se denomina «invariante»), entonces una estructura funcionará perfectamente. Si desea restringir el acceso y admitir la escritura y la lectura de acuerdo con algunas reglas (que se formalizan en forma de funciones asignadas al objeto, de las que hablaremos más adelante), entonces es mejor utilizar clases.
MQL5 tiene tipos integrados de estructuras que describen entidades demandadas para trading, en particular tasas (MqlRates), ticks (MqlTick), fecha y hora (MqlDateTime), solicitudes de operaciones (MqlTradeRequest), resultados de solicitudes (MqlTradeResult) y muchas otras. Hablaremos de ellos en la Parte 6 de este libro.