Новая версия платформы MetaTrader 4 build 1470 - страница 2

 
Этот класс - это отдельный mqh-файл, который я положил в Include. Вызов может произойти из любой другой программы, к которой я его подключу. Для эксперимента я изменил выражение m_SMB=Symbol(); на выражение m_SMB=Symb(); Нажал "Компилировать". Редактор тут же выдал ошибку. Значит, синтаксис в инклуднике он всё же проверяет. Только вот в моём прошлом примере реализацию метода не проверил.
 
Vitaly Murlenko #:
Этот класс - это отдельный mqh-файл, который я положил в Include. Вызов может произойти из любой другой программы, к которой я его подключу. Для эксперимента я изменил выражение m_SMB=Symbol(); на выражение m_SMB=Symb(); Нажал "Компилировать". Редактор тут же выдал ошибку. Значит, синтаксис в инклуднике он всё же проверяет. Только вот в моём прошлом примере реализацию метода не проверил.
В этом классе вы описали прототип метода, но не реализовали его. Реализация его может находиться в другом месте. Если у вас в коде нет обращения к этому методу, то и реализация ни к чему.
Вообще идея файлов-хедеров пришла из C. Там вообще реализацию функций не делали, только их прототипы размещали. Реализация была в библиотеках.
 
Sergey Gridnev #:
В этом классе вы описали прототип метода, но не реализовали его. Реализация его может находиться в другом месте. Если у вас в коде нет обращения к этому методу, то и реализация ни к чему.
Вообще идея файлов-хедеров пришла из C. Там вообще реализацию функций не делали, только их прототипы размещали. Реализация была в библиотеках.
У меня у самого есть библиотеки. Я так и поступал: заголовочный файл перечисляет функции, а их реализация описана в библиотеке. Теперь становится понятно, почему в моём случае компилятор не ругнулся на синтаксис. Ух какой тонкий нюанс. Спасибо, что помогли разобраться.