Errores, fallos, preguntas - página 3062

 

Aquí es donde el compilador debería dar un error:

class A
  {
public:
   int               aa;
  };
A a;

void OnStart()
  {
   a.aa=999999;
   A b=GetPointer(a);//Переменная b не является указателем
   Print(b.aa);
  }

El guión imprime nueves.

 
Aliaksandr Hryshyn:

Aquí es donde el compilador debería dar un error:

El guión imprime nueves.

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Nueva versión de MetaTrader 5 build 2980: notificaciones push en operaciones comerciales

A100, 2021.06.21 08:35

En MQL, los punteros no son realmente punteros (no hay aritmética de direcciones), sino referencias

Y si es así, la conversión implícita deun puntero de referencia a un objeto funciona

En C++ se vería así


#ifdef __cplusplus
#define GetPointer(a)   ((A&)(a))
void OnStart()
{
   a.aa=999999;
   A b = GetPointer(b);
   Print(b.aa);
}
#endif
 
A100 :

Y como este es el caso, una conversión implícita de puntero a objeto funciona

En C++ se vería así:

Ya que usted es un gran conocedor de la OOP. ¿Puedo pedirle su opinión sobre este tema?

Bug: Const method + Copy constructor
Bug: Const method + Copy constructor
  • 2021.07.18
  • www.mql5.com
This code reproduces the bug: There are 2 workarounds for this code, you either remove the const qualifier from the method foo or create a temporar...
 
fxsaber:

En la máquina remota, esto sólo empezó a ocurrir después de algún tiempo. Antes de eso, todo funcionaba correctamente. No recuerdo haber cambiado nada en el sistema operativo.

Recuerdo algo parecido. Probablemente tenga algo que ver con la conexión RDP.

Y cambiar por ventanas con Alt+Tab parecía ayudar.

 
Andrey Khatimlianskii:

Recuerdo algo parecido. Probablemente tenga algo que ver con la conexión RDP.

Y parece que ayuda a cambiar de ventana con Alt+Tab.

Por desgracia, no sirvió de nada. Hasta que no cierro Alert, el terminal sigue sin ser visible.

 
Alain Verleyen:

Ya que usted es un gran conocedor de la OOP. ¿Puedo pedirle su opinión al respecto?

En C++ todo compila sin errores, en MQL sin const (3) - también compila - significa que en algún lugar de MQL hay un error.

class C {
public:
    C()           { Print( 1 ); }  
    C( const C& ) { Print( 2 ); }
    C h()         { Print( 3 ); return C(); }    //(3) нормально
    C f() const   { Print( 4 ); return C(); }    //(4) ошибка при компиляции
    C g() const   { Print( 5 ); C c; return c; } //(5) замена (4)
};
void OnStart()
{
    C c;
    c.f();
}

Por otro lado, incluso si (4) se compilara, la secuencia de llamadas seguiría siendo diferente:

en MQL: 1-4-1-2

en C++: 1-4-1

por lo que es más correcto utilizar la variante (5) en cualquier caso

 
A100 :

En C++ todo compila sin errores, en MQL sin const (3) - también compila - significa que en algún lugar de MQL hay un error

Por otra parte, incluso si (4) se compilara, la secuencia de llamadas sería diferente:

en MQL: 1-4-1-2

en C++: 1-4-1

por lo que es más correcto utilizar la variante (5) en cualquier caso

Gracias :-)
 

Caramba, todavía no lo entiendo, así que díganme, buenas personas:

Para evitar que todos los archivos abiertos en el Metaeditor se bloqueen en el momento perfecto, ¿qué tengo que hacer?

¿Metaeditor.ini respaldado manualmente o qué? En serio.

Sólo que ni siquiera después de cerrar/abrir, sino justo al aire libre de repente todo ha desaparecido. La razón no está clara.

 
Aleksey Mavrin:

Vaya, sigo sin entenderlo, así que decidme, gente de buena voluntad:

Para evitar que todos los archivos abiertos en el Metaeditor se bloqueen en el momento perfecto, ¿qué tengo que hacer?

¿Metaeditor.ini respaldado manualmente o qué? En serio.

Sólo que ni siquiera después de cerrar/abrir, sino justo al aire libre de repente todo ha desaparecido. La razón no está clara.

No lo volteo, lo uso como una versión portátil.
 

Hay un cliente. He hecho su trabajo. Quería volver a trabajar conmigo. Creé un trabajo. No ha podido averiguarlo o le ha faltado un paso en el que tiene que adjuntar una especificación.

Borra el trabajo. Según las normas, sólo se puede crear un puesto de trabajo. No puede crear, quiere crear otra cuenta. (Le aconsejé que no lo hiciera, y le escribí que trataría de dirigirse a mí en apoyo).

Se ofreció a pagar por adelantado no aquí, a lo que me negué. Porque no es justo para el tercero (MKL).

Por favor, dale la oportunidad de crear un puesto de trabajo aquí.

De alguna manera esto no es correcto. Hay una persona dispuesta a pagar por el trabajo, hay un artista que acepta hacerlo y pagar una comisión. El proceso se detiene.

https://www.mql5.com/en/users/mbende/feedbacks

Razón de la queja: