Как передать массив по ссылке в конструктор?

 
//+------------------------------------------------------------------+
//|                                                       Trade0.mq5 |
//|                                  Copyright 2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Include                                                          |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string Expert_Title         ="Trade0"; // Document name
ulong        Expert_MagicNumber   =30371;    //
//+------------------------------------------------------------------+
//| Global expert object                                             |
//+------------------------------------------------------------------+
//CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Initialization function of the expert                            |
//+------------------------------------------------------------------+
enum dir{
   l, s
};
class instruction
{
   private:
   double stop;
   double open;
   double take[];
   //dir direction;
   bool retest;
   public:
   instruction(double _stop, double _open, double &_take[], 
      bool _retest){
      stop=_stop;
      open=_open;
      ArrayResize(take, (_take).Size());
      ArrayCopy(take,(_take));
      retest=_retest;
      }
};
int OnInit()
  {
   float takes[]={95191, 96196};
   //instruction i1(93768,94500,{95191, 96196},true);
   instruction i1(93768,94500, takes,true);
//--- Initializing expert
//--- ok
   return(INIT_SUCCEEDED);
  }

Как передать массив (в данном случае takes) в конструктор? Искал в инструкции, но всё, что нашёл, немного о другом.

 
double takes[]={95191, 96196};
 
TraSer:

Как передать массив (в данном случае takes) в конструктор? Искал в инструкции, но всё, что нашёл, немного о другом.

Ну, правильно передаёшь. Единственное - ты объявляешь, что в конструктор передаёшь массив дублей. А потом при создании i1 - передаёшь в конструктор массив совсем другого типа. Тут ошибка явно.

 
Georgiy Merts #:

Ну, правильно передаёшь. Единственное - ты объявляешь, что в конструктор передаёшь массив дублей. А потом при создании i1 - передаёшь в конструктор массив совсем другого типа. Тут ошибка явно.

Теоретически, float должны автоматом кастится до double...

 
Alexey Volchanskiy #:

Теоретически, float должны автоматом кастится до double...

Это float преобразуется в double автоматом.

А вот float[] - нифига автоматом в double[] не преобразуется. 

 
Georgiy Merts #:

Это float преобразуется в double автоматом.

А вот float[] - нифига автоматом в double[] не преобразуется. 

М.... должен быть хотя бы варнинг, но проверять лень. Я за строгую типизацию.

Причина обращения: