Новая версия платформы MetaTrader 5 build 2085: Интеграция с Python и массовые улучшения в тестере стратегий - страница 48
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пусть даже в С++ по какой-то причине это запрещено,
Потому что есть базовые принципы ООП: изменения в базовом классе не должны влиять на поведение производного
К сожалению, пока не добавили инструкцию using, придётся заводить в производном классе нужную перегрузку из которой вызвать родительский метод
Так а ввод using планируется? Как насчёт отложить запрет до того момента, когда в языке появится необходимый инструментарий? Сейчас вы создаёте программисту проблему на ровном месте, не предложив ничего взамен, и вынуждая городить костыли. В стандарте C++ ведь, очевидно, всё было заранее продумано, прежде чем вводить ограничения. Поэтому всё решается просто и элегантно:
А вы предлагаете городить в MQL портянку:
Больше кода - больше вероятность сделать ошибку.
И главное - чего ради всё это? Неоднозначности тут нет, сигнатуры функций разные, поэтому вероятность вызвать не тот метод - отсутствует. Если конечно не брать в расчёт возможность передать неверное число аргументов, но с таким же успехом можно перепутать и в обычной перегруженной функции. Т.е. ограничение в данном случае никак не улучшает надёжность кода, никакого практического смысла в нём нет. Сделано просто для занудства?
В C++ всё решается одной короткой строчкой, поэтому подобное занудство там не является проблемой.
К слову, в C# данного ограничения НЕТ. А этот язык известен своей большей строгостью, нежели C++.
Поэтому, считаю, не стоит слепо копировать всё подряд из C++ чисто для галочки, без конкретной практической пользы. Нагромождение лишнего кода, не улучшающее его надёжность, сулит больше проблем, чем пользы.
Компилятор правильно делает, что ругается и предлагает переписать.
Это же на 100% самоубийственный код, специально созданный для обязательных ошибок.
Тут не потакать надо заведомо опасным конструкциям, а наоборот удерживать от них.
Компилятор правильно делает, что ругается и предлагает переписать.
Это же на 100% самоубийственный код, специально созданный для обязательных ошибок.
Тут не потакать надо заведомо опасным конструкциям, а наоборот удерживать от них.
В чём конкретно его самоубийственность, можете объяснить? Чем вот этот вариант лучше:
И почему C# не ругается? Считаете, что компилятор там менее правильный?
И почему C# не ругается? Считаете, что компилятор там менее правильный?
В C# нет множественного наследования, другая концепция и сравнение некорректно. В C++ там уже подумали сто раз как надо, чтобы не наступать на грабли
В чём конкретно его самоубийственность, можете объяснить? Чем вот этот вариант лучше:
И почему C# не ругается? Считаете, что компилятор там менее правильный?
Если о причинах, то лучше ответ Страуструпа (The Design and Evolution of C++):
В плюсах таки можно объединить кандидаты с двух классов для перегрузки, надо лишь (не заметил в обсуждении выше):
Наверное, лучше до конца следовать плюсовому стилю, а не делать смесь всего на свете?
Спасибо, внёс исправление.
Извините, не подскажете как удалить в Тестере историю его работы с ликвидацией вот этих элементов? Очистка/удаление папок Тестера не помогает.
Баг
Вложенные директории в Навигаторе на втором уровне и глубже сортируются в обратном порядке. win7x64, mt5x64.