Ошибки, баги, вопросы - страница 3101
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
в b3095 запускаю скрипт:
Если убрать перегрузку f1(T* & Ptr), то все 5 вызовов возвращают void f1<const X>(const X*const).
Это какая-то особенность?
Объясните, пожалуйста:
В строке *1* выдается ошибка компилятора - ожидамо.
А строка *2* отлично компилируется и работает. Почему?
Объясните, пожалуйста:
В строке *1* выдается ошибка компилятора - ожидамо.
А строка *2* отлично компилируется и работает. Почему?
Нужно явное противоречие показать (что Вы значение const поменяли):
А Вы предлагаете и опытным Пользователям догадываться и Разработчикамзначение const поменяли
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
fxsaber, 2017.11.07 14:57
Можно ли поменять поля const-объекта класса или вызвать его не const-методы? -Можно!Самому не нравится такая фишка. Думал, что застрахован от несанкционированного доступа. Облом, однако! С const-структурами такое, конечно, не прокатывает. Так что имейте в виду эту лазейку.
Нужно явное противоречие показать (что Вы значение const поменяли):
А Вы предлагаете и опытным Пользователям догадываться и РазработчикамДа. Но у вас в примере явное ( через ф-ю) преобразование const T в T - т.е. "легализованная" лазейка.
((A*)(&a)).i = 1;
аналогично - (const A*) конвертируете в A*.
((A)a).i = 1;
В Вашем примерe явное преобразование const к non const, а там все чисто