Поискал по всему форуму так и не нашел примера как передать массив в класс.
Вот что я пишу. Но не компилируется. Напишите как надо.
CC(double & arr);массивы только по ссылкам
так тоже не компилируется
Поискал по всему форуму так и не нашел примера как передать массив в класс.
Вот что я пишу. Но не компилируется. Напишите как надо.
double Price[]={0.1,0.2,0.3,0.4,0.5}; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnTick() { CC Hi(Price); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ class CC { private: double arr[]; public: CC(double &src_array[]) { ArrayCopy( arr, src_array ); }; double Max() {return arr[ArrayMaximum(arr)];} double Min() {return arr[ArrayMinimum(arr)];} }; //+------------------------------------------------------------------+
//+------------------------------------------------------------------+ double Price[]={0.1,0.2,0.3,0.4,0.5}; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ class CC { public: double arr[]; CC(double & Arr[]){}; double Max() {return arr[ArrayMaximum(arr)];} double Min() {return arr[ArrayMinimum(arr)];} }; //+------------------------------------------------------------------+ CC Hi(Price); void OnTick() { }
А без ArrayCopy никак не обойтись ?
Если вам в классе нужна копия для будущей работы с ним. То вроде это оптимальный вариант. Правда скажу честно, это первое что в голову пришло.
double Price[]={0.1,0.2,0.3,0.4,0.5}; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnStart() { CC hi; Print (hi.Max(Price)); Print (hi.Min(Price)); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ class CC { public: double Max(double &arr[]) {return arr[ArrayMaximum(arr)];} double Min(double &arr[]) {return arr[ArrayMinimum(arr)];} }; //+------------------------------------------------------------------+
Так массива в классе нет.
Я в ООП не силен потому и спрашиваю.
В моем понимании если в класс передается ссылка на массив ТО почему нужно копировать в класс массива (что достаточно затратно) , если по идее можно взять указатель и получить этот же массив но уже в классе?
Надеюсь я понятно выразился.
Так массива в классе нет.
Я в ООП не силен потому и спрашиваю.
В моем понимании если в класс передается ссылка на массив ТО почему нужно копировать в класс массива (что достаточно затратно) , если по идее можно взять указатель и получить этот же массив но уже в классе?
Надеюсь я понятно выразился.
я сделал именно то, о чем вопиёт название ветки.
да я с вами даже соглашусь. НО В классе в моем примере есть массив и он должен был обсчитываться.
Ваш пример ничем не отличается, если это сделать с помощью функций.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Поискал по всему форуму так и не нашел примера как передать массив в класс.
Вот что я пишу. Но не компилируется. Напишите как надо.