Preguntas sobre POO en MQL5 - página 77

 
Vladimir Simakov:

Estoy de acuerdo en que ahora es más complicado)))

Yo cortésmente no dijo nada, aunque yo quería pedir un ejemplo no a la salida a un registro, sino a un archivo - su registro es más práctico y tiene sentido, y en el registro de la terminal para entender lo que las salidas de la terminal, lo que EA - muy inconveniente

 

¿Cuándo vamos a empezar a hacer los enlaces duros que aún no tiene MQ?

 

expertos en normas, he aquí una pregunta:

Mientras ME es un lío con {} resaltado , copiado el código MQL en un proyecto C++ vacío en VS2019, por qué VS jura esto:

struct SHash
{
  ulong hash[2];
  bool operator==(const SHash& value)const { return(this. hash[0] == value.hash[0] && this. hash[1] == value.hash[1]); }
};

escribe: "la expresión debe ser del tipo de clase"

 
Igor Makanu:

experto en normas, he aquí una pregunta:

Mientras ME es un lío con {} resaltado , copiado el código MQL en un proyecto C++ vacío en VS2019, por qué VS jura esto:

escribe: "la expresión debe tener un tipo de clase"

y en C++ esto es un puntero...

o bien anular * o especificar explícitamente ->

 
Maxim Kuznetsov:

y en C++ esto es un puntero...

Anule * o especifique explícitamente ->

Me he acostumbrado a poner esto como en todos los artículos de aquí, en general para no escribir en ningún sitio, simplemente no hay opciones dentro de construcciones tan simples...no hay manera, imho

 
Igor Makanu:

expertos en normas, he aquí una pregunta:

Mientras ME es un lío con {} resaltado , copiado el código MQL en un proyecto C++ vacío en VS2019, por qué VS jura esto:

escribe: "la expresión debe ser del tipo de clase"

Así es como debería ser:

struct SHash
{
        long hash[2];
        bool operator==(const SHash& value)const { return(this->hash[0] == value.hash[0] && this->hash[1] == value.hash[1]); }
};
 
Andrei Novichkov:

Así es como debería ser:

Lo necesito en MQL, he descargado VS como editor, para navegar por el código y ver lo que puedo ver )))

Pero en tal estructura para MQL - no tiene sentido escribir esto?

 
Igor Makanu:

Lo necesito en MQL, he descargado VS como editor, para navegar por el código y ver lo que puedo ver ))))

pero en tal estructura para MQL - no tiene sentido escribir esto ?

Tengo que comprobarlo, pero a primera vista, esta expresión no tiene sentido no sólo en MQL)
 
Igor Makanu:

escribir una y otra vez - tengo tiempo (porque no veo la televisión )) ) - recopilación de información técnica sobre las características del lenguaje, OOP... Todo en lo que hay preguntas - el foro está activo, aprovecho esta oportunidad "al cien por cien" ;)

La pregunta es: ¿qué sentido tiene pasar de C# a MQL, si puedo simplemente llamar a mi código Sharp desde MQL, a menos que quiera ponerlo en Market u optimizarlo en MQ-cloud?

Después de todo la transición de C# a MQL, supongo, es realmente dolorosa ) Después de acostumbrarse a la comodidad y facilidad de trabajar con objetos, donde no hay que preocuparse por su eliminación, aquí se obtiene lo contrario.De todos modos, una POO en toda regla requiere la presencia de un contador de referencias para los objetos referenciados. Y en C++ se resuelve con un wrapper: el puntero inteligente. En MQL el uso de punteros inteligentes es muy engorroso por la falta de operador ->, y otros problemas.

Así que, si se cambia desde C++, todo está más o menos claro: se obtienen muchos inconvenientes y limitaciones, pero en general algo similar. E incluso algunas ventajas (por ejemplo, una mayor fiabilidad en tiempo de ejecución gracias al entorno gestionado). Pero al pasar de Sharp, no veo ninguna ventaja. Sólo desventajas )

 
Igor Makanu:

Tengo una habilidad para pegar este como todos los artículos aquí escriben, en general no escribir en cualquier lugar, simplemente no hay opciones dentro de los diseños tan simples ... ponces, imho

En general, se impone un estilo muy controvertido aquí)))) El mismo

return (retValue);

¿Por qué los soportes? No es JS, aunque tampoco hay que hacerlo allí.

Y si realmente necesita esto y que sería en los pluses correcta, entonces en lugar de esta macrosustitución

#ifdef __cplusplus
   #define THIS *this
#else
   #define THIS this
#endif