Ошибки, баги, вопросы - страница 2296
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В одном случае предупреждение, в другом ошибка
А какая принципиальная разница? В C++ например в обоих случаях ошибка
Прошу помочь знающих людей разобраться в вопросе указателей на экземпляры классов. А то я не въезжаю.
Имеем такой пример скрипта:
При выполнении имеем, как и предпологалось:
если экземпляр класса объявляем так:
A *a= new A;тогда при выполнении имеем:
т.е. деструктор даже не запускается, память соответственно не освобождается.
Если же экземпляр класса объявляем так:
A a= new A;то конструктор запускается два раза, деструктор 1 раз, но при этом память не освобождается и имеем тип указателя объекта POINTER_AUTOMATIC , хотя предпологалось POINTER_DYNAMIC
Как добиться всегда выполнения деструктора и правильного выполнения delete
Как добиться всегда выполнения деструктора и правильного выполнения delete.
Смотрите из С++ тему умных указателей и адаптируйте под MQL (https://habr.com/post/140222/).
Может что есть в кодобазе...
Смотрите из С++ тему умных указателей и адаптируйте под MQL (https://habr.com/post/140222/).
Может что есть в кодобазе...
спасибо, но не увидел там ответов на мои вопросы.
Не понимаю, почему деструктор не вызывается при A *a= new A;
спасибо, но не увидел там ответов на мои вопросы.
Не понимаю, почему деструктор не вызывается при A *a= new A;
Результат:
1:POINTER_AUTOMATIC
1:POINTER_DYNAMIC
2:POINTER_DYNAMIC
2:POINTER_AUTOMATIC
спасибо, но не увидел там ответов на мои вопросы.
Не понимаю, почему деструктор не вызывается при A *a= new A;
Создаем оператором new, а удаляем оператором delete
спасибо, но не увидел там ответов на мои вопросы.
Не понимаю, почему деструктор не вызывается при A *a= new A;
https://www.mql5.com/ru/docs/basis/variables/object_live
Все объекты, созданные выражением указатель_объекта=new Имя_Класса, обязательно должны быть впоследствии уничтожены оператором delete(указатель_объекта). Если по каким то причинам такая переменная по окончании работы программы не была уничтожена оператором delete, то об этом будет выведено сообщение в журнал "Эксперты". Можно объявить несколько переменных и всем им присвоить указатель одного объекта.
Прошу MQL проверить функцию OnTimer().
Почему-то она не работает в тестере стратегий для МТ4 (Ошибок нет, просто ничего внутри этой функции не выполняется), при этом в онлайне все Ок.
Для МТ5 функция работает как в тестере, так и в онлайне.
Спасибо!
В OnInit только два числа сравниваются, а времени на Incorrect-проход уходит больше, чем на полноценный проход! Как так?
Запускаем на полную Оптимизацию вот такой советник
Получаем результат работы 8-ми Агентов
Теперь такой советник
Наконец, такой
Два вывода
По второму пункту явно какая-то ошибка. Мне выгоднее по времени делать пустой прогон, нежели выскакивать из OnInit. Просьба поправить, т.к. почти полностью теряются преимущества Incorrect-Init и ExpertRemove.
Вкладка Избранное с советниками/индикаторами/скриптами и счетами запоминается только после выхода из Терминала. Из-за этого нештатный выход (электричество кончилось) сбрасывает эту вкладку. Возможно ли ее сохранять при изменении?
Иногда возникает четкое понимание, что было бы очень удобно, если бы в Избранное можно было бы добавлять папки.