как передать массив в класс

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Dmitiry Ananiev
9282
Dmitiry Ananiev  

Поискал по всему форуму так и не нашел примера как передать массив в класс. 

double Price[]={0.1,0.2,0.3,0.4,0.5};
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   CC Hi(Price);

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class CC
  {
public:
   double            arr[];
                     CC(double arr);

   double Max()
     {return  arr[ArrayMaximum(arr)];}

   double Min()
     {return  arr[ArrayMinimum(arr)];}
  };
//+------------------------------------------------------------------+

Вот что я пишу. Но не компилируется. Напишите как надо.

Vladimir Pastushak
91215
Vladimir Pastushak  
Dmitiry Ananiev:

Поискал по всему форуму так и не нашел примера как передать массив в класс. 

Вот что я пишу. Но не компилируется. Напишите как надо.

CC(double & arr);массивы только по ссылкам
Dmitiry Ananiev
9282
Dmitiry Ananiev  
Vladimir Pastushak:

так тоже не компилируется 

Konstantin Nikitin
8619
Konstantin Nikitin  
Dmitiry Ananiev:

Поискал по всему форуму так и не нашел примера как передать массив в класс. 

Вот что я пишу. Но не компилируется. Напишите как надо.

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)];}
  };
//+------------------------------------------------------------------+
Vladimir Pastushak
91215
Vladimir Pastushak  
//+------------------------------------------------------------------+
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()
  {
  

  }
Dmitiry Ananiev
9282
Dmitiry Ananiev  
Konstantin Nikitin:

А без ArrayCopy никак не обойтись ? 

Konstantin Nikitin
8619
Konstantin Nikitin  
Dmitiry Ananiev:

А без ArrayCopy никак не обойтись ? 

Если вам в классе нужна копия для будущей работы с ним. То вроде это оптимальный вариант. Правда скажу честно, это первое что в голову пришло.

_o0O
142
_o0O  
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)];}
  };
//+------------------------------------------------------------------+
Dmitiry Ananiev
9282
Dmitiry Ananiev  
_o0O:

Так массива в классе нет. 
Я в ООП не силен потому и спрашиваю. 

В моем понимании если в класс передается ссылка на массив ТО почему нужно копировать в класс массива (что достаточно затратно) , если по идее можно взять указатель и получить этот же массив но уже в классе? 

Надеюсь я понятно выразился. 

_o0O
142
_o0O  
Dmitiry Ananiev:

Так массива в классе нет. 
Я в ООП не силен потому и спрашиваю. 

В моем понимании если в класс передается ссылка на массив ТО почему нужно копировать в класс массива (что достаточно затратно) , если по идее можно взять указатель и получить этот же массив но уже в классе? 

Надеюсь я понятно выразился. 

я сделал именно то, о чем вопиёт название ветки.
Dmitiry Ananiev
9282
Dmitiry Ananiev  
_o0O:
я сделал именно то, о чем вопиёт название ветки.

 да я с вами даже соглашусь. НО В классе в моем примере есть массив и он должен был обсчитываться. 
Ваш пример ничем не отличается, если это сделать с помощью функций. 

123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий