Características del lenguaje mql5, sutilezas y técnicas - página 193

 
fxsaber:

Absolutamente todas las reglas son artificiales.

Estoy de acuerdo. La cuestión es el nivel de arte :)

 

Por favor, aconséjeme: si utiliza un indicador personalizado que tiene muchos (digamos, 50) parámetros, ¿cuáles son las mejores formas de gestionar los parámetros del indicador? (excepto la transferencia directa de los parámetros de un indicador a los pares expertos, todo está claro aquí)

He encontrado el uso de la carga de archivos *.set en el código de otra persona al llamar a iCustom, pero no he encontrado nada de eso y parece que no funciona en la prueba.

¿Quizá alguien lo sepa y haya algún truco no documentado?

 

La última versión es la 2650. Está bien que un script como este no compile:

struct A_INFO
{
  int a;
};

bool operator<(const A_INFO &First,const A_INFO &Second) //operator< has invalid parameters count
{
  return First.a<Second.a;
}

void OnStart()
{
}

Y esto es normal:

struct A_INFO
{
  int a;
};

bool operator<(const A_INFO &First)
{
  return true;
}

void OnStart()
{
}

¿Espera que compare 1 valor? ¿O por qué no se puede convertir al operador en unaestructura no miembro?

 
Y una segunda pregunta de seguimiento. ¿Por qué no se puede aplicar ArraySort a una matriz de estas estructuras? ¿Qué impide que se comparen utilizando el operador <, que está definido?
 
traveller00:

¿Espera que compare 1 valor?

El segundo valor (el que está a la izquierda del operador) es éste.

 
fxsaber:

El segundo valor (el que está a la izquierda del operador) es éste.

¿Por qué esto si no hice que el operador fuera un miembro de la estructura, sino globalmente? ¿O no puedo hacerlo global? C++ se comporta de forma diferente.

 
traveller00:

¿Por qué esto, si hice el operador globalmente en lugar de un miembro de la estructura? ¿O no puedo hacerlo globalmente? C++ se comporta de manera diferente.

No sé nada de esos operadores.

 
traveller00:
Y la segunda pregunta de seguimiento. ¿Por qué no se puede aplicar ArraySort a una matriz de tales estructuras? ¿Qué les impide comparar a través del operador < , que está definido?

El ArraySort incorporado es sólo una función, sobrecargada para todos los tipos estándar.

Las clases y otras OOP son una ayuda. Si todos los tipos (estructuras) tuvieran un ancestro común(CObject en SB) y así sucesivamente...

 
Aleksey Mavrin:

El ArraySort incorporado es sólo una función, sobrecargada para todos los tipos estándar.

Las clases y otras OOP son una ayuda. Si todos los tipos (estructuras) tuvieran un ancestro común (CObject en SB) y así sucesivamente...

Sí, tengo una idea aproximada de cómo se hace en el interior. La pregunta no era más bien para una respuesta. Pero como sugerencia para prestar atención a otras variantes de implementación, por ejemplo, STL, y para manejar los contenedores de una manera similar, donde podemos escribir cosas universales, incluyendo clasificadores.

 
traveller00:

Tengo una idea aproximada de cómo se hace en el interior. La pregunta no era para obtener una respuesta. Pero como sugerencia para prestar atención a otras variantes de implementación, por ejemplo STL, y hacer una forma similar de trabajo con los contenedores, donde podemos escribir cosas universales, incluyendo clasificadores.

Sin duda, STL seguro) Mientras que ArraySort se puede sobrecargar haciéndolo basado en plantillas y luego usarlo, pero no soy un especialista en plantillas, estoy acostumbrado a trabajar con jerarquías de clases simples.

Razón de la queja: