Ошибки, баги, вопросы - страница 2416
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Тут не нужно однозначности. Должен быть просто порядок применения перегруженных методов. Т.е. задача решения перегрузки не в создании делемм, а в выборе лучшего подходящего метода. Если отбросить модификатор доступа, то берется первый метод из таблицы или же зависит от реализации компилятора, но неоднозначности тут нет.
Вот если бы было 2 метода, с разными входными параметрами например:
Возвращаясь к C++, у того же вектора есть:
Так что это абсолютно нормальная ситуация.
Вы привели какой-то уж совсем простой пример начальной школы. Вроде, к исходному примеру он не имеет отношения.
Ну очевидно тот, который наиболее соответствует сигнатуре вызова. В данном примере запрашивается метод неконстантного объекта, соответственно при прочих равных условиях должен вызываться именно он.
Не знал о таком правиле, спасибо.
Если убрать оттуда кастинг, сделав аргумент типа int для обоих методов, то компилируется нормально. Т.е. затык в MQL именно из-за кастинга. Этот кастинг не должен влиять, т.к. он идентичный
Похоже, дело в отсутствии в компиляторе проверки на идентичность кастинга для перегруженных методов.
В общем для решения этой проблемы (как и многих других в MQL) нужно один из методов выносить во вспомогательный класс:
Вы привели какой-то уж совсем простой пример начальной школы. Вроде, к исходному примеру он не имеет отношения.
Начнём с того, что в кеше оптимизации, и в MT5, и в MT4 строковые параметры всегда усекались до 63 символов.
При передаче событий строка тоже не может быть длиннее 63 символов
То есть, то что приходит снаружи - ограничено
Что касается продуктов для конечных пользователей. Продавец должен учитывать ограничения. И если он их не знает, значит он недостаточно тестировал свой продукт перед продажей
Речь не про то как было и есть, а как должно быть по-хорошему, если есть желание идти в ногу со временем и меняться к лучшему.
столкнулся с такой проблемой, при тестировании советника, после установки параметров, и нажатии на кнопку старт, настройки советника сбрасываются на настройки по умолчанию, в чем может быть проблема?
в видео пример
столкнулся с такой проблемой, при тестировании советника, после установки параметров, и нажатии на кнопку старт, настройки советника сбрасываются на настройки по умолчанию, в чем может быть проблема?
в видео пример
MT5 самостоятельно сбрасывает настройки в тестере после перехода на вкладку "Настройки"
Смотреть пост #1.
Я в соседней ветке вопрос задал, но, похоже, в неё мало кто заглядывает. Продублирую здесь:
https://www.mql5.com/ru/forum/6343/page1020#comment_11112212
Коротко: на фьючерсах (в тестере) сделки открываются и закрываются (по SL/TP), но всегда с нулевой прибылью. Может это быть багом тестера? Или какая-то хитрость нужна?
Баг компилятора. При компиляции (проверке синтаксиса) файла .mqh с таким кодом не выдаётся ошибка. Она выдаётся только при компиляции исполняемого файла, что неудобно.
Баг компилятора. При компиляции (проверке синтаксиса) файла .mqh с таким кодом не выдаётся ошибка. Она выдаётся только при компиляции исполняемого файла, что неудобно.
Потому что хэдер не компилируется в принципе :)))
Если заставить целиком компилировать хэдер, вы огребете множество ложных ошибок.
PS. Компилятор C++ без использования таких классов тоже не ругается.Потому что хэдер не компилируется в принципе :)))
Если заставить целиком компилировать хэдер, вы огребете множество ложных ошибок.
PS. Компилятор C++ без использования таких классов тоже не ругается.Я в курсе, что не компилируется. Речь идёт о проверке синтаксиса (что в ME тоже называется термином "Компилировать"), ведь я в прошлом посте даже уточнил это в скобках. Если в компиляторе C++ тоже запустить проверку синтаксиса (через командную строку обычно), то он будет ругаться как миленький.