Автооптимизация параметров советника - страница 2

 
Meat:


Ну можно всё сделать значительно удобней. Например для моего примера:

И получим простой доступ к элементам:   Array. Set(n1, n2, n3, value)  и  Array.Get(n1, n2, n3).

Можно сделать ещё удобней, перегрузив оператор [], и будет доступ как к обычным элементам массива. Правда только на чтение, ибо для записи требуется чтобы функция возвращала ссылку на элемент, а MQL не поддерживает это.

Допустим MQL поддерживал бы указатели, как тогда в данном случае выглядил бы оператор [] для записи?
 
bistreevseh:
...

1. Язык mql4 поддерживает многомерные массивы максимум с 4мя измерениями, соответственно больше 4х параметров автооптимизировать не получится

...

Забавный вывод.

Достаточно двухмерного массива.

Да можно и с одномерным обойтись.

 
kbw74614:
Допустим MQL поддерживал бы указатели, как тогда в данном случае выглядил бы оператор [] для записи?

Вопрос не актуален: MQL-реализации двухмерного массива и многомерного.

В двухмерном случае есть такие строки:

double operator[]       (int x) {return(v[x].v);} // для чтения, индекс должен быть int
Cdouble* operator[]    (long x){return(GetPointer(v[(int)x]));} // для записи, индекс должен быть long

Вторая строка возвращает указатель на класс Cdouble - Cdouble*.

И у меня вопрос по всем различиям классов от структур. Правильно ли понимаю, что единственное различие класса от структуры в MQL - это невозможность в случае структуры задать тип указателя на структуру? В остальном классы и структуры идентичны. Верно?

Причина обращения: