Preguntas de un "tonto" - página 275

 

¿Cómo puedo encontrar un valor en una matriz bidimensional? Hay que buscar en la primera dimensión. Parece que no hay un medio estándar. Gracias.

 
zhurkin:

¿Cómo puedo encontrar un valor en una matriz bidimensional? Hay que buscar en la primera dimensión. Parece que no hay un medio estándar. Gracias.

A la antigua usanza. Ciclo. Si es igual, ya está.
 
ALXIMIKS:

He empezado a estudiar OOP.

Tuve un problema al escribir un descendiente de una clase base, el compilador escribe - "'ХХХХХХ' - recuento de parámetros erróneo".

Llevo mucho tiempo buscando la razón, releyendo artículos y libros de referencia,

pero lo encontré - la clase base tiene un constructor, es uno y paramétrico.

Yo también he encontrado una solución: sobrecargar la función del constructor con el constructor por defecto,

pero entonces tengo que arrastrar todos los parámetros del constructor paramétrico de la clase base al constructor descendiente para que la lógica sea correcta.

¿Hay otras formas?

¿Hay alguna manera, al declarar una clase descendiente, de distribuir a quién qué? Por ejemplo: estos parámetros al constructor de la clase base y estos parámetros para que el descendiente no se aburra...

Si una clase base tiene un único constructor paramétrico, la clase descendiente no puede evitar llamarlo. Sin embargo, la clase hija puede tener cualquier número de parámetros, incluso no tener ningún parámetro. Lo principal es que se llame al constructor de la clase base con todos los parámetros asignados. Ejemplo:

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;
};

 

Hubo una discusión en el hilo sobre


ENUM_POSITION_TYPE

dos valores. ¿y qué se devuelve si no hay posiciones abiertas?

Utilizo el método PositionType() de la biblioteca estándar.

Ok, lo tengo, PositionSelect() devuelve false, y PositionType() devuelve el tipo de la última posición seleccionada.



resulta que si no hay ninguna posición abierta, siempre devuelve 0, es decir, como si se abriera una posición de compra?

¿cómo puedo evitar esto?


 
openlive:

Hubo una discusión en el hilo sobre


ENUM_POSITION_TYPE

dos valores. ¿y qué se devuelve si no hay posiciones abiertas?

Utilizo el método PositionType() de la biblioteca estándar.

Ok, lo tengo, PositionSelect() devuelve false, y PositionType() devuelve el tipo de la última posición seleccionada.



resulta que si no hay ninguna posición abierta, siempre devuelve 0, es decir, como si se abriera una posición de compra?

¿cómo puedo evitar esto?


PositionSelect() se selecciona si hay una posición independientemente de su tipo, 0 - ninguna posición, 1 - sí, y el tipo se define como conveniente.
 

Hay dos variantes de la definición de la funciónOnCalculate :

1)int OnCalculate (const int rates_total, // tamaño del array price[]

const int prev_calculated, // barras procesadas en la llamada anterior
const int begin, // donde comienzan los datos significativos
const double& price[] // matriz para el cálculo
);

2)int OnCalculate (const int rates_total, // tamaño de la serie temporal de entrada

const int prev_calculated, // barras procesadas en la llamada anterior
const datetime& time[], // Hora
const double& open[], // Abrir
const double& high[], // Alto
const double& low[], // Low
const double& close[], // Cerrar
const long& tick_volume[], // Volumen del tick
const long& volume[], // Volumen real
const int& spread[] // Spread
);

llamar a la función 1)OnCalculate(), rellenar previamente todos sus parámetros - OnCalculate(rates_total,0,0,_price);

PREGUNTA: ¿podría rellenar los parámetros de la segunda llamada aOnCalculate() en este caso?

 
Piterrr:

Hay dos variantes de la definición de la funciónOnCalculate :

1)int OnCalculate (const int rates_total, // tamaño del array price[]

const int prev_calculated, // barras procesadas en la llamada anterior
const int begin, // donde comienzan los datos significativos
const double& price[] // matriz para el cálculo
);

2)int OnCalculate (const int rates_total, // tamaño de la serie temporal de entrada

const int prev_calculated, // barras procesadas en la llamada anterior
const datetime& time[], // Hora
const double& open[], // Abrir
const double& high[], // Alto
const double& low[], // Low
const double& close[], // Cerrar
const long& tick_volume[], // Volumen del tick
const long& volume[], // Volumen real
const int& spread[] // Spread
);

llamar a la función 1)OnCalculate(), rellenar previamente todos sus parámetros - OnCalculate(rates_total,0,0,_price);

PREGUNTA: ¿podría rellenar los parámetros de la segunda llamada aOnCalculate() en este caso?

y no hay que rellenar nada ni en el primer ni en el segundo caso.
 
zfs:
y no hay que rellenar nada en el primer o segundo caso.
Necesito llamar a esta función de forma forzosa, ¿cómo puedo rellenar los parámetros en este caso?
 
Piterrr:
Necesito llamar a esta función de forma forzosa, ¿cómo puedo rellenar los parámetros en este caso?
Crea el tuyo propio, este no puede.
 
zfs:
No puedes crear uno propio.
He creado la mía propia, dentro de la cual escribo la funciónOnCalculate(), pero al llenarla de parámetros genera errores - por favor envíenme un ejemplo.