Друзья !
Помогите, туплю совершенно.
Хочу при инициализации объекта сохранить указатель на массив (таймсерию), чтобы потом получать значения оттуда.
При объявлении класса среди protected членов собирался объявить переменную-указатель:
..................
Однако, компилятор мне говорит, нельзя использовать ни указателя, ни ссылки.
....
Как решается подобная задача ?
Оберни буфер для таймсерии классом. Указатели на классы в языке разрешены (существуют), правда в виде хендлов (псевдоуказателей) но принцип рабочий.
За исключением некоторой тормознутости, в связи с неявной обработкой хендл-прослойки, особых недостатков в таком доступе нет.
Что же, внутри класса хранить всю таймсерию, и на каждом тике копировать всю таймсерию внутрь класса для использования ?
Как решается подобная задача ?
уточните пожалуйста
вам нужен массив указателей или указатель на массив?
если указатель на массив - то объявление
double *arr[] - это не указатель на массив, а массив указателей
Если нужен указатель на массив - то оберните массив в класс и используйте указатель на его объект
class CC
{
double arr[]
};
CC *obj;
Оберни таймсерию классом. Указатели на классы в языке разрешены (существуют), правда в виде хендлов (псевдоуказателей) но принцип рабочий.
За исключением некоторой тормознутости, в связи с неявной обработкой хендл-прослойки, особых недостатков в таком доступе нет.
Да, это реализуется через классы Стандартной Библиотеки CiHigh (и другие подобные).
Но, для универсальности хотелось бы, чтобы класс мог работать как с этими объектами, так и непосредственно с таймсериями, передаваемыми, скажем, в индикатор
уточните пожалуйста
вам нужен массив указателей или указатель на массив?
Да, я вижу там двусмысленность. Мне нужен именно один указатель на массив-таймсерию (значения цен, переданные в индикатор). Я пытался сделать вот так:
double(*m_dHigh)[]; // указатель на массив
Пишет ошибку.

- www.mql5.com
Если нужен указатель на массив - то оберните массив в класс и используйте указатель на его объект
class CC
{
double arr[]
};
CC *obj;
Да, видимо, так и придется сделать, тем более, в Стандартной Библиотеке уже есть все готовые обертки.
Спасибо за консультацию.

- www.mql5.com

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Друзья !
Помогите, туплю совершенно.
Хочу при инициализации объекта сохранить указатель на массив (таймсерию), чтобы потом получать значения оттуда.
При объявлении класса среди protected членов собирался объявить переменную-указатель:
double* m_dHigh[]; // указатель на массив
или переменную-ссылку:
double& m_dLow[]; // ссылка на массив
При создании объекта этот указатель или ссылка инициализировался бы таймсерией, и дальше я мог бы обращаться к элементам таймсерии из класса, и получать их.
Однако, компилятор мне говорит, нельзя использовать ни указателя, ни ссылки.
Что же, внутри класса хранить всю таймсерию, и на каждом тике копировать всю таймсерию внутрь класса для использования ?
Как решается подобная задача ?