Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
в классе-предке переменная в вызове функции объявлена, как int, а в классе потомке - как const int. В результате - компилятор считает эти функции различными, а не перегружаемыми виртуальными.
А там есть ключевое слово virtual ? Без него перегрузки не будет, даже если функции полностью идентичны
Конечно. Я написал в Сервисдеск, они подтвердили проблему, и исправили ее.
Речь идет о функциях:
virtual bool CSeries::BufferResize( int size)
Но:
virtual bool CiTime::BufferResize(const int size)
В одной из них отсутствует модификатор const, поэтому функции опознаются как различные, а не виртуальные.
Оно, конечно, хорошо, когда возможно обеспечить "полный перебор возможных значений". Но, что-то мне подсказывает, что это невозможно для сколь-нибудь серьезного класса.
Кроме того, вот глядите, оттестировали отдельно классы, все работает, сложили вместе - в результате возвращаются ошибки, которых, по идее, быть не может. Что не так ? Как вы это обнаружите без пошагового прохождения кода (или трассировочных сообщений через каждые пару строк) ?
Или вот, относительно недавно я обнаружил баг в классах таймсерий Стандартной библиотеки - в классе-предке переменная в вызове функции объявлена, как int, а в классе потомке - как const int. В результате - компилятор считает эти функции различными, а не перегружаемыми виртуальными. По отдельности эти классы замечательно работают. Но как только я стал вызывать эти функции через указатель (задействовал механизм виртуальных функций) - код стал возвращать странные результаты. Мне понадобилось довольно кропотливое прохождение по коду, пока я заметил, что созданный объект таймсерии вызывает совсем не ту функцию, которую я предполагал. Боюсь, без отладчика - такой баг было бы выловить гораздо сложнее.
А если говорить о перспективе, то с учетом современного опыта софтверной индустрии, состояние отладки и контроля за выполнением становится перманентным, по типу управляемого кода CLR в .Net.
Согласен с вами, что дополнительные режимы отладки, если они появятся, нам не помешают и естественно будут полезны, просто я говорил о возможностях решения проблем в текущей реализации.
Ну, голь на выдумки хитра - сейчас приходится использовать трассировочные сообщения и долго разбираться в лог-файле. Но хочется нормального отладчика.
Ну, голь на выдумки хитра - сейчас приходится использовать трассировочные сообщения и долго разбираться в лог-файле. Но хочется нормального отладчика.
revers45:
Выходит за оффтопили тему, а проблемы интеграции MT4 и MT5 остались, или может все уже всё для себя решили...
На мой взгляд, счета МТ4 никто не будет "прикручивать" к МТ5. Как минимум, потому, что понятие "позиции" слишком отличается. Возможно, имеются и другие проблемы совместимости.
Да и нет смысла "тянуть" старый функционал в новый терминал. Как правильно сказал автор темы - MT4 - это простой алгоритмический язык. Язык МТ5 - гораздо шире и гибче по возможностям. Учитывая наличие Стандартной Библиотеки - он вобще выходит на новый уровень программирования.
Поэтому - не будет интеграции MT4-5. Будет простой портинг кода МТ4 в МТ5.
Ну а насчет оффтопа - соглашусь, это надо в другую тему.