Скачать MetaTrader 5

Как сохранить указатель или ссылку на массив типа array[]

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
George Merts
3736
George Merts 2013.02.23 08:21 

Всех приветствую. Такая задача.

Есть массив,  объявлен, скажем, так:

double array[];

 

Необходимо  обращаться к нему внутри класса. Для этого необходимо сохранить на него указатель или ссылку в виде protected-переменной.

Однако,  компилятор пишет ошибку:

class CFoo

protected:

double*  array[];    // Так ошибка

double&  array[];   // И так ошибка 

};

 

Как сохранить указатель на массив ?

Единственная возможность - использовать в качестве массива класс CArray и его потомков, сохраняя указатель на него.

Но такая конструкция ограничивает применимость класса - хотелось бы, чтобы класс работал как с указателем на CArray так и с указателем на array[].

Какие есть предложения ?  

o_o
Модератор
23913
o_o 2013.02.23 08:24  

прочитайте полностью

https://www.mql5.com/ru/forum/8900

Dmitriy Parfenovich
7779
Dmitriy Parfenovich 2013.02.23 08:27  
Laryx:

Всех приветствую. Такая задача.

Есть массив,  объявлен, скажем, так:

double array[];

 

Необходимо  обращаться к нему внутри класса. Для этого необходимо сохранить на него указатель или ссылку в виде protected-переменной. ...

А что, если объявить массив в самой зоне-protected?
Может для себя что-то новое узнаю...
Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
George Merts
3736
George Merts 2013.02.23 16:26  
sergeev:

прочитайте полностью

https://www.mql5.com/ru/forum/8900

 

О ! Да, как раз тема про то, что нужно.

 

Пока класс использует объекты-наследники CSeries, но  с помощью memcpy(), действительно, получается вроде сохранять ссылку на массив.

 

o_o
Модератор
23913
o_o 2013.02.23 16:39  

Laryx:


Пока класс использует объекты-наследники CSeries, но  с помощью memcpy(), действительно, получается вроде сохранять ссылку на массив.

тогда наверно будут интересны еще две статьи

https://www.mql5.com/ru/articles/364 - тут подробно про memcpy

https://www.mql5.com/ru/articles/19 - тут про массивы и dll

Избавляемся от балласта самодельных DLL
Избавляемся от балласта самодельных DLL
  • 2012.01.31
  • o_O
  • www.mql5.com
Если MQL5-программисту недостаточно функционала языка, он вынужден обращаться к дополнительным инструментам. Для этого приходится использовать другой язык программирования и создавать промежуточную DLL. В MQL5 имеется механизм представления разных типов данных с помощью структур и передачи их в API, но к сожалению, MQL5 не отвечает нам на вопрос о том, как вытянуть данные из принятого указателя. В данной статье мы поставим точку в этом вопросе и покажем простые механизмы обмена сложными типами данных и работе с ними.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий