Discusión sobre el artículo "Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte XXVII): Trabajando con las solicitudes comerciales - Colocación de órdenes pendientes" - página 5

 
Реter Konow:
Todo funciona y funciona bien. A cada cual lo suyo.
Estoy leyendo artículos y no encuentro el "generador de entidades", el principio por el que se hace todo esto. Estoy tratando de aprender a pensar de esta manera y entender por qué pienso de manera diferente. Y cuál es la ventaja de pensar de forma diferente (si es que la hay). También le hablé a Artyom del esquema de la biblioteca.


En esencia, el esquema es tan simple como tres rublos. Es extraño que sea necesario.
Pero si dibujas todas las interrelaciones, es más probable que confundas al lector. Al fin y al cabo, muchos objetos utilizan los datos de sus vecinos. Pero todos están en sus propias colecciones. Y las colecciones están en el CEngine base. Y cuando habrá funciones de usuario, habrá dos puntos de acceso a la biblioteca. Y habrá aún más conexiones.
 
Artyom Trishkin:
El plan es tan sencillo como tres rublos. Es extraño que sea necesario.
Pero si se dibujan todas las interrelaciones, es más probable que se confunda al lector. Al fin y al cabo, muchos objetos utilizan los datos de sus vecinos. Pero todos están en sus propias colecciones. Y las colecciones están en el CEngine básico. Y cuando habrá funciones de usuario, habrá dos puntos de acceso a la biblioteca. Y habrá aún más conexiones.
Bueno, vamos a leer y estudiar los entresijos...)
 
//+------------------------------------------------------------------+
//| Comparar objetos CPendingReq por propiedades |
//+------------------------------------------------------------------+
int CPendingReq::Compare(const CObject *node,const int mode=0) const
  {
   const CPendingReq *compared_req=node;
   return
     (
      //--- Comparar por ID
      mode==0  ?  
      (this.ID()> compared_req.ID() ? 1 : this.ID()< compared_req.ID() ? -1 : 0)   :
      //--- Comparar por tipo
      (this.Type()> compared_req.Type() ? 1 : this.Type()< compared_req.Type() ? -1 : 0)
     );
  }
//+------------------------------------------------------------------+

¿Tipo o Id no pueden ser iguales?

 
BillionerClub:

¿Tipo o Id no pueden ser iguales?

No entiendo el sentido de la pregunta. Por favor, aclárelo.

 
Artyom Trishkin:

No entiendo el sentido de la pregunta. Por favor, aclárelo.

Al comparar siempre hay una situación en la que la igualdad es posible

this.Type()>=compared_req.Type()
 
BillionerClub:

Cuando comparas, siempre hay una situación en la que la igualdad es posible.

Aquí se comprueban tres condiciones:

this.Type()>compared_req.Type() ? 1 : this.Type()<compared_req.Type() ? -1 : 0

Mayor que (1), menor que (-1), resto (0)

 
Artyom Trishkin:

Aquí se prueban tres condiciones:

Mayor que (1), menor que (-1), resto (0)

hombre, yo era un tonto y no vi el significado del código)))