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

 
Igor Makanu:

это все понятно, да и не маленькая это разница, скажу не кривя душой, что код профессионального программиста и отличается от любительского именно вот в этой разнице - в проверке критических ошибок .... хотя при современных тенденциях в языках программирования и это упростили для ламеров-програмеров c помощью try except finally и т.п.  ;)

На самом деле Try/Catch более интересная тема, чем может показаться:) Жаль в MQL ее нет.

 
И совершенно не понятно, как её можно красиво имплементировать своими средствами.
 

Кто подскажет, на что он ругается и что с этим делать

#property strict

template<typename T> struct A
 {
  A<T> f();
  
  int i;
  
  static int k;
 };

//---

template<typename T> int A::k=0;

//---

void OnStart()
{
  A<int> a;
}

//---

template<typename T> A<T> A::f()
 { 
  A<T> r; 
  r.i=0; 
  return r; 
 }


 
Vasiliy Sokolov:

 Имхо, MQL больше похож на очень урезанный C# с полным отсутствием синтаксического сахара.

ОК, с C# чет не было желания и возможностей подразобраться, пару раз открывал VS2017 на уровне С++ и знания Делфи пробовал писать под С#, дальше пока не разбирался - теперь точно повнимательнее к С# присмотрюсь


Ilya Malev:

Кто подскажет, на что он ругается и что с этим делать

не знаю поможет Вам или нет, но в MQL структуры не совсем, то же что и классы, как выше упоминал Василий, MQL чем то напоминает С# - там структуры  статической памяти создаются, а классы вроде в куче

вот я искал решение через описание структуры, но подсказали, что нужно в классы "обернуть"  https://www.mql5.com/ru/forum/6343/page866#comment_7541747

может в классе Ваш пример будет работать?

Вопросы от начинающих MQL5 MT5 MetaTrader 5
Вопросы от начинающих MQL5 MT5 MetaTrader 5
  • 2018.05.23
  • www.mql5.com
Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000...
 
Igor Makanu:

может в классе Ваш пример будет работать?

Нет, от этого не зависит. Это брачные танцы темплейтов со статиками.

 

Сервис деск обратите внимание на заявку 

ОткрытаНачата: 2018.12.17 14:19#2224434

 
Комментарии, не относящиеся к этой теме, были перенесены в "Вопросы от начинающих MQL4 MT4 MetaTrader 4".
 
Ilya Malev:

Кто подскажет, на что он ругается и что с этим делать

Написать тело метода внутри класса.

 
fxsaber:

Написать тело метода внутри класса.

Как заставить это работать, я уже сам разобрался. Вопрос в причинах ошибки, почему нельзя написать именно так, как написано, с точки зрения логики и здравого смысла

 
Ilya Malev:

Как заставить это работать, я уже сам разобрался. Вопрос в причинах ошибки, почему нельзя написать именно так, как написано, с точки зрения логики и здравого смысла

Кстати, это не единственная ошибка. Также компилятор не даёт обратиться к статическому полю k с помощью  A<T>::k