Можно сделать примерно так:
void ReadFromArray(int temp_i, points &result);//чтение структуры из массива по индексу ... //+------------------------------------------------------------------+ //| Method ReadFromArray | //+------------------------------------------------------------------+ void CKeyFinder::ReadFromArray(int temp_i, points &result) { ... }
Можно сделать примерно так:
Т.е. скинуть результат через указатель?
Да, только выше я предлагаю передавать параметр не по указателю (*), а по ссылке(&).
Я могу ошибаться по текущим реалиям, но вроде MQL4/5 не даёт объявлять методы/функции с возвратом на основе структур. Если ошибаюсь, то, надеюсь, меня поправят.
Да, только выше я предлагаю передавать параметр не по указателю (*), а по ссылке(&).
Я могу ошибаться по текущим реалиям, но вроде MQL4/5 не даёт объявлять методы/функции с возвратом на основе структур. Если ошибаюсь, то, надеюсь, меня поправят.
В справке написано, что простые структуры на числовых типах можно:
"Можно возвращать простые типы, простые структуры, указатели объектов. При помощи оператора return нельзя возвращать любые массивы, объекты классов, переменные типа сложных структур."
В справке написано, что простые структуры на числовых типах можно:
"Можно возвращать простые типы, простые структуры, указатели объектов. При помощи оператора return нельзя возвращать любые массивы, объекты классов, переменные типа сложных структур."
Только у Вас пара опечаток и некоторые ошибки (например, ";" в конце некоторых строк там, где быть не должно, или что в методе следует создать экземляр структуры и его вернуть).
Вот рабочий вариант:
class CKeyFinder { private: double UpPoints[][2]; //Двумерный массив с верхними точками (индекс точки, размерность) //объявил структуру struct points { int index;//идекс бара точки int dim; //размерность точки }; public: //объявил метод класса типа points // Метод свойство - чтение из двухмерного массива points ReadFromArray(int temp_i);//чтение структуры из массива по индексу }; //+------------------------------------------------------------------+ //| Method ReadFromArray | //+------------------------------------------------------------------+ points CKeyFinder::ReadFromArray(int temp_i) { points result; if (temp_i>=0) { result.index = UpPoints[temp_i][1]; result.dim = UpPoints[temp_i][2]; } else { result.index = 0; result.dim = 0; } return result; }
По крайней мере компилируется :)
//+------------------------------------------------------------------+ //| Method ReadFromArray | //+------------------------------------------------------------------+ points CKeyFinder::ReadFromArray(int temp_i); { if (temp_i>=0) return (points.index=UpPoints[i][1],points.dim=UpPoints[i][2]) else return (points.index=0,points.dim=0); }
Кстати то что вы тут пытаетесь вернуть из функции, это результат присваивания значений элементам структуры. Обычно это true ;)
Не поленился, проверил. Действительно можно.
Только у Вас пара опечаток и некоторые ошибки (например, ";" в конце некоторых строк там, где быть не должно, или что в методе следует создать экземляр структуры и его вернуть).
Вот рабочий вариант:
По крайней мере компилируется :)
Кстати то что вы тут пытаетесь вернуть из функции, это результат присваивания значений элементам структуры. Обычно это true ;)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Собственно вопрос простой подскажите как это выглядит? В справке по языку не нашел. Я решаю задачу организации чтения данных из двумерного массива, члены массива целые числа. Для чтения из такого массива, я создал соответствующую структуру. Объявил функцию чтения этого же типа и застрял в элементарном вопросе синтаксиса команды return.
Вот только в правильности синтаксиса в методе сомневаюсь. Оператор this к структурам не применяется. Кто если делал, что-то подобное- подскажите, как правильно. Заранее премного благодарен.