Errores, fallos, preguntas - página 2065

 
Situación cómica
class B;

class A
{
protected:  
  int i;

public:  
  void operator =( const B* Value )
  {    
    this.i = Value.i;       // 'i' - protected member access error
    
    // А так можно!
    this.i = ((A*)Value).i; // и нет ошибки: cannot convert from const pointer to nonconst pointer    
  }
};

class B : public A {};


Pensé que la situación sería la misma en ambos casos. ¡Pero no!

 
Sólo se puede hacer dentro de la clase A. A mí me parece bien.
 

fxsaber:

¿Cómo se puede saber el nombre de un archivo a partir de su mango?

Que yo recuerde, no hay forma de
 
Комбинатор:
Sólo se puede hacer dentro de la clase A. A mí me parece bien.

error

    this.i = Value.i;       // 'i' - protected member access error

ya ha sido arreglado, por favor, espere a la nueva compilación.

 

ошибка

ya ha sido arreglado, por favor, espere a la nueva compilación.

Ellos lo saben mejor. Un error es un error
 

MetaEditor añade un punto al nombre del archivo

Secuencia de operaciones:

  • En el Explorador cree un documento de texto Test.txt
  • Abrirlo en el MetaEditor mediante Archivo/Abrir
  • A continuación, seleccione Archivo/Guardar como...


Como resultado, el nombre del archivo será Test2..txt en lugar de Test2.txt

El Bloc de notas, en igualdad de condiciones, no añade puntos adicionales al nombre del archivo
 

fxsaber:

ya ha sido arreglado, por favor, espere a la nueva compilación.

Hay que ver cómo se arregla exactamente porque en un caso similar el compilador de Microsoft exige por una razón que se lleve la implementación del método (en este caso el operador =) fuera de la clase

https://www.mql5.com/ru/forum/1111/page2001#comment_5679732

https://www.mql5.com/ru/forum/1111/page2001#comment_5680465

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2017.08.29
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 

Este parece ser un comportamiento erróneo para la lengua, ya que limita las posibilidades.

struct A {};

class B
{
public:
  const A a;
  
  B( const A &in ) : a(in) // 'a' - constructor not defined
  {
  }
};


Necesito definir un campo const como una estructura. Pensé que el operador de copia funcionaría, pero el compilador quiere un constructor en su lugar, porque la sintaxis es similar. Pero es un error.

 
Mensaje de error incorrecto
struct A
{
  const int i;
};

void OnStart()
{
  A a1, a2;
  
  a1 = a2; // '=' - not allowed for objects with protected members or inheritance
}
 

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

Bichos, errores, preguntas

fxsaber, 2017.05.19 22:35

TimeTradeServer puede devolver todo tipo de tonterías. Por ejemplo, un valor inferior a TimeCurrent. Esto anula completamente su aplicación práctica.

Si entiendo bien la idea, TimeTradeServer debe calcular el tiempo transcurrido después de recibir TimeCurrent y añadir esta diferencia, una especie de emulación de los valores futuros de TimeCurrent.

Ahora, habiendo ejecutado el Asesor Experto

#define  TOSTRING(A) #A + " = " + (string)(A) + "\n"

void OnInit()
{
  EventSetTimer(1);
}

void OnTimer()
{
  Comment(TOSTRING(TimeTradeServer()) + TOSTRING(TimeCurrent()));
}

puedes ver cualquier tontería.

Fíjate en las fechas.


Así es como TimeTradeServer devuelve la hora local. Una vez más, por favor, corrija el comportamiento correcto.