Ошибки, баги, вопросы - страница 1953
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Возможно, и так. Сейчас на порядок можно еще как-то влиять через Swap input-строк в исходнике советника.
Это же убивает алгоритм оптимизации - все равно что оптимизировать в случайном направлении.
Это же убивает алгоритм оптимизации - все равно что оптимизировать в случайном направлении.
Речь про полный перебор в первую очередь.
Постепенно осваиваю ООП и встретился с одной неочевидной вещью.
Есть класс А, полями которого являются объекты другого класса В.
в классе А вызывается константный метод, возвращающий объект класса В.
После чего вызывается метод класса В, стирающий параметры полученного объекта.
Выглядит это так (пример упрощен, писался в браузере):
В результате получается, что Reset() не срабатывает, т.е. поля m_member не очищаются.
Вопрос: не должен ли компилятор на этапе сборки сообщать (ошибку/предупреждение), что вызывается неконстантный метод для константного объекта (или что-то в этом духе)?
Вопрос: не должен ли компилятор на этапе сборки сообщать (ошибку/предупреждение), что вызывается неконстантный метод для константного объекта (или что-то в этом духе)?
Возможно, причина в вызове неявного конструктора копирования в результате Reset вызывается для временного объекта.
Возможно, причина в вызове неявного конструктора копирования в результате Reset вызывается для временного объекта.
Постепенно осваиваю ООП и встретился с одной неочевидной вещью.
Есть класс А, полями которого являются объекты другого класса В.
в классе А вызывается константный метод, возвращающий объект класса В.
После чего вызывается метод класса В, стирающий параметры полученного объекта.
Выглядит это так (пример упрощен, писался в браузере):
В результате получается, что Reset() не срабатывает, т.е. поля m_member не очищаются.
Вопрос: не должен ли компилятор на этапе сборки сообщать (ошибку/предупреждение), что вызывается неконстантный метод для константного объекта (или что-то в этом духе)?
Возвращайте указатели.
Спасибо за идею. Совсем про них забыл.
Странно. У меня ваш код выдает ошибку компиляции.
object of 'B' cannot be returned, copy constructor 'B::B(const B &)' not found
на описании функции GetBMember (что на чистом английском говорит о создании копии). Последняя ли версия компилятора?
Когда эта проблема фиксится добавлением копи-конструктора B, то потом Вы можете возвращать const B из метода GetBMember.
Тогда компилятор будет ругаться на попытку сделать Reset возвращаемой переменной:
'Reset' - call non-const method for constant object
Странно. У меня ваш код выдается ошибку компиляции.
object of 'B' cannot be returned, copy constructor 'B::B(const B &)' not found
на описании функции GetBMember. Последняя ли версия компилятора?
Когда эта проблема фиксится добавлением копи-конструктора B, то потом Вы можете возвращать const B из метода GetBMember.
Тогда компилятор будет ругаться на попытку сделать Reset возвращаемой переменной:
'Reset' - call non-const method for constant object
Этот код - просто пример, написанный в браузере. Просто было интересно, почему компилятор ничего не сообщает. Но уже разобрался.
И, в моем примере вообще нет конструкторов:)
Здравствуйте! 2017.08.03_18:45 GMT+3. Написал файл ООП SignalIchimoku.mqh . Но, когда нужно сделать несложные вычисления до LongCondition() и ShortCondition() в отдельной функции, функция написана, компилятор выдаёт 0 ошибок, 0 предупреждений. А эта функция не работает, вычисления не производятся. Программа не открывает сделки. Проверяю: вставил Print() значения переменной в функцию. Эта функция подобна функциям StateStoch(int ind), ExtStateStoch(int ind) и CompareMaps() в SignalStoch.mqh , стандартном файле из стандартной библиотеки. В стандартном файле всё работает, а у меня не работает. Почему? Это опять "простые правила"? Кто знает, -- подскажите. Если нужны подробности или возникли вопросы, -- пишите. 18:59 GMT+3.