Задали вопрос в личке, что это означает. Рушил на форуме ответить, так как нашел полезный примерчик, который вносит ясность.
Кстати, если владеете английским, очень полезно задать такой вопрос на английском в Гугле, причем не по MQL, а по С++. Например так
http://www.google.com/search?q=const+in+c%2B%2B+after+function&oq=const+in+c%2B%2B&sourceid=chrome&ie=UTF-8
Будет куча ссылок на чисто программерские форумы, а С++ довольно похож на MQL
Я перевел комменты на русский и немного подправил для совместимости с MQL. Внизу прикрепляю скрипт, скомпилируйте и все станет ясно.
А документация ясности не вносит?
Метод с модификатором const называется постоянным и не может модифицировать неявные члены своего класса. Объявление постоянных функций класса и постоянных параметров называется контролем постоянства (const-correctness). Благодаря такому контролю можно быть уверенным, что компилятор проследит за неизменностью значений объектов и выдаст ошибку еще на стадии компиляции в случае нарушения.
Модификатор const ставится после списка аргументов внутри объявления класса. Определение вне класса также должно включать модификатор const:
Дополнительным аргументом в пользу использования контроля целостности служит то, что компилятор в этом случае производит специальную оптимизацию, например, располагает постоянный объект в памяти только для чтения.
Статическая функция не может быть определена с модификатором const, так как данный модификатор гарантирует неизменность членов экземпляра при вызове такой функции. Но, как уже говорилось выше, статическая функция по определению не может обращаться к нестатическим членам класса.
https://www.mql5.com/ru/docs/basis/oop/staticmembers
Причем, на мой взгляд, Вы представили не самый удачный пример составления структуры (вначале методы, затем данные-члены). И, если уж на то пошло, лучше все это обернуть не в структуру, а в класс, т.к. структуры обычно используют в качестве объединения данных (без методов).
- www.mql5.com
А документация ясности не вносит?
https://www.mql5.com/ru/docs/basis/oop/staticmembers
Причем, на мой взгляд, Вы представили не самый удачный пример составления структуры (вначале методы, затем данные-члены). И, если уж на то пошло, лучше все это обернуть не в структуру, а в класс, т.к. структуры обычно используют в качестве объединения данных (без методов).
Вносит
Вот я же помнил, что где-то в доке об этом писали, а не нашел с ходу. Пример по быстрому передрал со стэковерфлоу. Где ставить данные - личное дело программиста, хотя я и сам ставлю в начале. Использовать структуры или класс - личное дело программиста )))
Вносит
Вот я же помнил, что где-то в доке об этом писали, а не нашел с ходу. Пример по быстрому передрал со стэковерфлоу. Где ставить данные - личное дело программиста, хотя я и сам ставлю в начале. Использовать структуры или класс - личное дело программиста )))
Так можно много про что сказать "личное дело". Только Вы кому-то объясняете, причем не в личке, а публично. И Ваше "личное дело" расходится с хорошим стилем программирования. А тот, кому Вы это объясняете, и многие другие пользователи могут воспринять это за хороший стиль, коим он не является.
И о человеке, который здесь хотел (а может и вел) курсы, такое "тяп ляп по-быстрому" говорит очень многое.
Какие члены явные, какие неявные?
Видимо, в данном контексте, это те члены, которые вызывают данный метод. Или, иначе, это члены, к которым можно обратиться через this из метода.
В С++ это означает, что метод не может менять членов класса, за исключением членов, объявленных mutable.
Т.к. в MQL такого хрен дождешься, это означает, что метод в принципе не может изменять объект.
В С++ это означает, что метод не может менять членов класса, за исключением членов, объявленных mutable.
Т.к. в MQL такого хрен дождешься, это означает, что метод в принципе не может изменять объект.
Константный метод не может изменять только тот объект, который его вызвал.
Это очепятка?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Задали вопрос в личке, что это означает. Рушил на форуме ответить, так как нашел полезный примерчик, который вносит ясность.
Кстати, если владеете английским, очень полезно задать такой вопрос на английском в Гугле, причем не по MQL, а по С++. Например так
http://www.google.com/search?q=const+in+c%2B%2B+after+function&oq=const+in+c%2B%2B&sourceid=chrome&ie=UTF-8
Будет куча ссылок на чисто программерские форумы, а С++ довольно похож на MQL
Я перевел комменты на русский и немного подправил для совместимости с MQL. Внизу прикрепляю скрипт, скомпилируйте и все станет ясно.