Ошибки, баги, вопросы - страница 3617

 
Alexey Viktorov #:

Сожалею. Я тоже думал сдохну раньше чем разберусь в ООП, но не судьба даже в 71. Так-что не ленитесь, читайте. Здесь много интересных тем об ООП.

А зачем? Я в этом не вижу смысла. Для тех задач, которые стоят передо мной, вполне достаточно процедурного.

Или только для того, чтоб уметь разбираться в чужих каракулях.

Ну хз, возникнет такая необходимость, освою. Пока не возникала.

 
Aleksandr Slavskii #:

Скажите лучше, это у меня глюки или раньше компилятор ругался на такое непотребство?

Ругался. Но теперь можно писать такое.


Грубо говоря, сейчас можно скопипастить кусок кода и будет работать - не надо заморачиваться с тем, что в копипасте совпадают имена переменных.

Особенности языка mql5, тонкости и приёмы работы - Что вы не можете использовать стандартный MQL с шаблонами и указателями функций?
Особенности языка mql5, тонкости и приёмы работы - Что вы не можете использовать стандартный MQL с шаблонами и указателями функций?
  • 2024.12.26
  • Vladislav Boyko
  • www.mql5.com
Под каждую задачу выбираю оптимальный для ее решения инструмент. Мне нужно было перебрать комбинации входных параметров ТС для Тестера. чтобы видеть номер варианта и комбинацию текущих входных. Чтобы удобно задавать изменение одного из параметров ТС в наборе
 
fxsaber #:
Ругался. Но теперь можно писать такое.
Так в прошлом году, где то писали, что разрабы сделали это сознательно.


Зы. Работать будет. Но как!  )))
 
Aleksandr Slavskii #:

Скажите лучше, это у меня глюки или раньше компилятор ругался на такое непотребство?

Вот за эту конструкцию, я бы яйца тому кто это внедрил, перекрутил бы. Чтоб прочувствовал, всю извращённость своей задумки.

Ну а почему должен ругаться? Для вложенного цикла счётчик действует исключительно внутри своего цикла. Предупреждение должно быть. А так, хз(хотел бы знать), а действительно зачем такие извращения? Ведь читать неудобно…

Если я не прав, меня поправят.

 
Aleksandr Slavskii #:

CTrade, один из не многих классов, который можно использовать без знаний ООП.

Эту торговую библиотеку нельзя использовать без чтения ее исходников, к сожалению.

Например, штатный OrderSend можно использовать без чтения его MQ-исходников, которые ООП.


Торговая библиотека нормальная, если ее можно использовать, как штатные функции - без чтения исходников.

Например, использую Generic-библиотеку, но понимаю ее исходники на 10%. Однако, она написана правильно - не требуется разбираться в исходниках.

 
Alexey Viktorov #:

Ну а почему должен ругаться? Для вложенного цикла счётчик действует исключительно внутри своего цикла. Предупреждение должно быть. А так, хз(хотел бы знать), а действительно зачем такие извращения? Ведь читать неудобно…

Если я не прав, меня поправят.

Да, хотя бы предупреждение. Я уже не раз попался на эту вложенность, без предепреждений.
 
Aleksandr Slavskii #:
Да, хотя бы предупреждение. Я уже не раз попался на эту вложенность, без предепреждений.

Безусловно, это серьезный минус.

 
fxsaber #:

Для меня загадка, почему бытует такое мнение.

А для чего он нужен (this)?

Если есть метод-член с таким-же идентификатором, то будет вызван именно он; если члена с таким идентификатором нет, то будет вызвана функция из global scope. Что вам дает this?

 
С членами (переменными/объектами) все тоже очень просто. Если вы работаете в ооп парадигме, то и работайте в ней полностью, а не "тут немного ооп, а там немного переменных в global scope лежит". У меня global scope пустой всегда (там либо единственный объект CAdvisor, либо единственный объект CIndicator), поэтому я не боюсь, что я изменю 'член класса/локальную переменную' вместо 'переменной в глобальной области' или наоборот.
 
Vladislav Boyko #:

Что вам дает this?

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2025.02.10 15:55

Чтобы была однозначность при чтении кода и не возникали потенциальные ошибки.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2025.02.10 15:43

bool CTrade::PositionModify(const ulong ticket,const double sl,const double tp)
  {
//--- check stopped
   if(this.IsStopped(__FUNCTION__))

Знания ООП требуются для прочтения? Не возникает вопрос, почему IsStopped содержит входной параметр?


А ниже же полное понимание, что вызывается, правда?

return(OrderSend(m_request,m_result));


Многим приходит в голову при виде такого вызова OrderSend нажать ALT+G?