Скачать MetaTrader 5

SELF:: доступ к статическим элементам из методов класса

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Evgeny Potapov
1682
Evgeny Potapov  

Помогите, пожалуйста, разобраться как организован в MQL4 доступ к статическим элеменам класса из методов этого же класса.

self - не работает

Vasiliy Sokolov
29803
Vasiliy Sokolov  
Evgeny Potapov:

Помогите, пожалуйста, разобраться как организован в MQL4 доступ к статическим элеменам класса из методов этого же класса.

self - не работает

Здесь не клуб телепатов. Приведите проблемный код. Доступ к статическим переменных внутри экземпляров класса, происходит так же, как и к любым другим переменным внутри класса.
Evgeny Potapov
1682
Evgeny Potapov  
Vasiliy Sokolov:
Здесь не клуб телепатов. Приведите проблемный код. Доступ к статическим переменных внутри экземпляров класса, происходит так же, как и к любым другим переменным внутри класса.

Извините. Попробую кусочек кода для иллюстрации добавить:

class M {
   public:
      static int MyProblem = 1;
   private:
      int PrintMyProblem() {
         Print(M::MyProblem); // работает
         Print(self::MyProblem); // не работает
      }
}

Вот иллюстрация моего вопроса.

Директивы SELF - вообще что ли нет?

Vasiliy Sokolov
29803
Vasiliy Sokolov  
Evgeny Potapov:

Извините. Попробую кусочек кода для иллюстрации добавить:

Вот иллюстрация моего вопроса.

Директивы SELF - вообще что ли нет?

Директивы self в MQL нет. Используйте первый вариант доступа к переменной. Или просто пишите: printf(MyProble);
Evgeny Potapov
1682
Evgeny Potapov  

Помогите найти ошибку, пожалуйста!

#define NUMBER_OF_COMMON_COEFS   3
class ZigZacMA  {
   private:

   public:
      static double CommonCoefs[NUMBER_OF_COMMON_COEFS];
      ZigZacMA();
      ~ZigZacMA();
};
ZigZacMA::ZigZacMA()  {
   ArrayInitialize(ZigZacMA::CommonCoefs, 0); 
}
fxsaber
10170
fxsaber  
Evgeny Potapov:

Помогите найти ошибку, пожалуйста!

Добавьте ниже описания класса строку

double ZigZacMA::CommonCoefs[NUMBER_OF_COMMON_COEFS];
Evgeny Potapov
1682
Evgeny Potapov  
fxsaber:

Добавьте ниже описания класса строку

Спасибо! Помогло!
Stanislav Korotky
23156
Stanislav Korotky  
Evgeny Potapov:

Помогите найти ошибку, пожалуйста!

А это ничего, что создание каждого нового объекта будет заполнять общий статический массив нулями?

Evgeny Potapov
1682
Evgeny Potapov  
Stanislav Korotky:

А это ничего, что создание каждого нового объекта будет заполнять общий статический массив нулями?

Да, я и хочу, чтобы каждый новый объект инициализировал статику. Дальше буду рассчитывать статику с учётом новой коллекции объектов.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий