Вопросы от "чайника" - страница 275

 

Здравствуйте! Как найти значение в двумерном массиве? Искать нужно в первом измерении. Стандартных средств по всей видимости нет. Спасибо!

 
zhurkin:

Здравствуйте! Как найти значение в двумерном массиве? Искать нужно в первом измерении. Стандартных средств по всей видимости нет. Спасибо!

По старинке. Цикл. Если равно, то оно.
 
ALXIMIKS:

Начал изучать ООП.

Возникла проблема при написании потомка базового класса, компилятор пишет -   " 'ХХХХХ' - wrong parameters count"

долго искал причину, перечитывал статейки и справочник, 

нашел - в базовом классе конструктор, он один и параметрический.

 

Выход тоже нашел, перегрузка функции конструктора конструктором по умолчанию,

но тогда приходится все параметры параметрического конструктора базового класса перетаскивать в конструктор потомка для верности логики.

 

Есть ли иные пути?

как-то сразу при объявлении класса потомка можно распределить кому что?  Например: эти параметры на конструктор базового класса, а эти чтобы потомок не скучал...

Если базовый класс имеет единственный параметрический конструктор, то в потомке избежать его вызова нельзя. Однако класс-потомок может иметь любое количество параметров, в том числе быть без параметров вообще. Главное, что бы конструктор базовового класса вызывался со всеми положенными ему параметрами. Пример:

class CParent
{
   public:
      CParent(int myID, string myName, double myValue)
      {
         id = myID;
         name = myName;
         value = myValue;
      }
   private:
      int id;
      string name;
      double value;
};

class CChildOne : CParent
{
    public:
       CChildOne() : CParent(2, "CChildOne", 2.34){;}
};

class CChildTwo : CParent
{
    public:
       CChildOne(int myID, int param) : CParent(myID, "CHildTwo", 2.56)
       {
          xParam = param;
       }
    private:
       double xParam;
};

 

тут в теме обсуждали


ENUM_POSITION_TYPE

два значения. а что возвращается, если нет открытых позиций?

я использую метод PositionType() из стандартной библиотеки

Всё, понял PositionSelect() возвращает false, а PositionType() возвращает тип последней выбранной позиции.



получается что если позиций не открыто то всегда возвращается 0, то есть как будто открыта позиция на покупку?

как это правильно обойти?


 
openlive:

тут в теме обсуждали


ENUM_POSITION_TYPE

два значения. а что возвращается, если нет открытых позиций?

я использую метод PositionType() из стандартной библиотеки

Всё, понял PositionSelect() возвращает false, а PositionType() возвращает тип последней выбранной позиции.



получается что если позиций не открыто то всегда возвращается 0, то есть как будто открыта позиция на покупку?

как это правильно обойти?


PositionSelect()выбирает позицию, если она есть вне зависимости от типа, 0- нет позиции, 1 есть, а тип уже определяется как удобней
 

Существует два варианта определения функции OnCalculate :

1)  int OnCalculate (const int rates_total, // размер массива price[]

const int prev_calculated, // обработано баров на предыдущем вызове
const int begin, // откуда начинаются значимые данные
const double& price[] // массив для расчета
);

2)  int OnCalculate (const int rates_total, // размер входных таймсерий

const int prev_calculated, // обработано баров на предыдущем вызове
const datetime& time[], // Time
const double& open[], // Open
const double& high[], // High
const double& low[], // Low
const double& close[], // Close
const long& tick_volume[], // Tick Volume
const long& volume[], // Real Volume
const int& spread[] // Spread
);

вызов функции 1) OnCalculate(), предварительно заполнив все ее параметры - OnCalculate(rates_total,0,0,_price);

ВОПРОС: подскажите, пожалуйста, как заполнить параметры, в таком случае,  для второго варианта вызова функции  OnCalculate()?

 
Piterrr:

Существует два варианта определения функции OnCalculate :

1)  int OnCalculate (const int rates_total, // размер массива price[]

const int prev_calculated, // обработано баров на предыдущем вызове
const int begin, // откуда начинаются значимые данные
const double& price[] // массив для расчета
);

2)  int OnCalculate (const int rates_total, // размер входных таймсерий

const int prev_calculated, // обработано баров на предыдущем вызове
const datetime& time[], // Time
const double& open[], // Open
const double& high[], // High
const double& low[], // Low
const double& close[], // Close
const long& tick_volume[], // Tick Volume
const long& volume[], // Real Volume
const int& spread[] // Spread
);

вызов функции 1) OnCalculate(), предварительно заполнив все ее параметры - OnCalculate(rates_total,0,0,_price);

ВОПРОС: подскажите, пожалуйста, как заполнить параметры, в таком случае,  для второго варианта вызова функции  OnCalculate()?

а ничего не надо заполнять ни в первом, ни во втором случае.
 
zfs:
а ничего не надо заполнять ни в первом, ни во втором случае.
Мне нужно вызвать эту функцию принудительно - как заполнить параметры в таком случае ?
 
Piterrr:
Мне нужно вызвать эту функцию принудительно - как заполнить параметры в таком случае ?
Создать свою, эту нельзя.
 
zfs:
Создать свою, эту нельзя.
Я создаю свою, внутри которой прописываю функцию  OnCalculate(), но при заполнении её параметрами бьёт ошибки - скинте плиз пример заполнения.
Причина обращения: