Структуры и объединения

Структура является наиболее простым для понимания объектным типом, поэтому мы начнем знакомство с ООП именно с него. У структур много общего с классами, которые являются основным строительным блоком в ООП, так что знание структур поможет в дальнейшем при переходе к классам. Вместе с тем, у структур есть некоторые отличия: часть из них можно рассматривать как ограничения, а часть — как преимущества. В частности, структуры не могут иметь виртуальных функций, зато они применяются для интеграции со сторонними DLL-библиотеками.

Выбор между структурами и классами при реализации алгоритма традиционно базируется на требованиях к доступу к элементам объекта и наличию внутренней бизнес-логики. Если необходим простой контейнер со структурированными данными и их состояние не нужно проверять на корректность (в программировании это называется "инвариантом"), то подойдет структура. Если требуется ограничить доступ и поддерживать запись и чтение по некоторым правилам (которые формализуются в виде функций, приписанных к объекту, о чем мы далее поговорим), то лучше воспользоваться классами.

В MQL5 имеются встроенные типы структур, описывающие востребованные для трейдинга сущности, в частности, котировки (MqlRates), тики (MqlTick), дату и время (MqlDateTime), торговые запросы (MqlTradeRequest), результаты запросов (MqlTradeResult) и многие другие. О них мы поговорим в шестой Части книги.