Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Читай форум и увеличивай свой рейтинг!
diabolo
13
diabolo 2016.09.13 06:10 

Господа разработчики, здравстуйте!

Подскажите пожалуйста, неужели нельзя реализовывать свои функции вида Func(int lala, ...) с неопределенным количеством аргументов. Так же как работают встроенные Print/FileWrite?

Очень этого не хватает, но в документации ничего подобного нет.

LRA
321
LRA 2016.09.13 08:42  
diabolo-tm:  реализовывать свои функции вида Func(int lala, ...) с неопределенным количеством аргументов ... как работают встроенные Print/FileWrite?
void OnStart()   // Способ 1.  Параметров много, но им заданы предопределенные значения
{
  Функция(11);
  Функция(22,33);
  Функция(33,44,55);
  Функция(77.11);
}

void Функция(int Парам1=1,int Парам2=2,int Парам3=3,int Парам4=4)
{
   Alert("  Парам1=",Парам1,"  Парам2=",Парам2,"  Парам3=",Парам3,"  Парам4=",Парам4);
}

void Функция(double Парам1=77)  // Способ 2 - Перегрузка
{
   Alert("  Парам1=",Парам1);
}

// Способ 3 - передача параметров через массив + счетчик элементов в массиве 
Vitalie Postolache
11118
Vitalie Postolache 2016.09.13 09:17  
Можно вообще без аргументов обойтись, обрабатывать глобальные переменные.
diabolo
13
diabolo 2016.09.13 10:30  
LRA:


Я не про перегрузки функций,  посмотрите на функцию Print, она не знает изначально сколько и какого типа параметров ей передадут. В C это реализовано через Va_arg, но насколько я понимаю реализовать это в mql никто не догадался
diabolo
13
diabolo 2016.09.13 10:33  
evillive:
Можно вообще без аргументов обойтись, обрабатывать глобальные переменные.

Вы сами понимаете о чем речь? Или у нас принято операцию на горло делать через задний проход? 
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий