Errores, fallos, preguntas - página 1784
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Mire aquí - Ejecución del programa
Para ver un resumen de los programas de MQL5, consulte la siguiente tabla:
Programa
Ejecución
Nota
Guión
En su propio hilo, tantos scripts como hilos de ejecución haya para ellos
Un script en bucle no puede interrumpir el trabajo de otros programas
Experto
En su propio hilo, tantos expertos - tantos hilos de ejecución para ellos
Un experto en bucle no puede interrumpir el trabajo de otros programas
Indicador
Un hilo de ejecución para todos los indicadores de un símbolo. Tantos símbolos con indicadores - tantos hilos de ejecución para ellos
Un bucle sin fin en un indicador detendrá todos los demás indicadores en este símbolo
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Bichos, errores, preguntas
Slawa, 2017.02.06 07:22
Pero aquí tampoco se puede contar con que la orden Deinit en M5 se procese antes que la orden Init en M15Por desgracia, no estoy familiarizado con este formato.
El experimento demostró que el número en el búfer gráfico se representa con las mismas reglas que el doble, es decir, que no es posible pasar un número tan largo por el búfer gráfico, lo que resulta frustrante.
Por desgracia, el búfer gráfico sólo puede contener un número de 10 dígitos.
Por cierto, ¿por qué hay un límite de 4 decimales?
Error de compilación (o más bien ningún mensaje de error)
public:
int i;
};
class B : public A {};
class C : protected A {};
class D : protected B {};
void OnStart()
{
C c;
Print( c.i ); //Error: 'i' - protected member access error
D d;
Print( d.i ); //нормально???
}
Error de ejecución: la carga de EX5 ha fallado
typedef void (*f)( A*);
class A {
virtual void g( A *a ) {}
f ff;
};
void OnStart() { Print( __FUNCTION__ ); }
Error durante la ejecución
void f( B* );
class A { public:
virtual ~A() { f((B *)&this ); } //(*)
virtual void g( A* ) { Print( __FUNCTION__ ); }
};
class B : public A { public:
virtual void g( A* ) { Print( __FUNCTION__ ); }
};
void f( B *b ) { b.g( b ); }
void OnStart() //(1)
{
B *b = new B;
delete b;
}
Resultado: fundición incorrecta de punteros en (*)
Y si
resultado: B::g
pero ¿cuál es la diferencia fundamental entre OnStart (1) y (2)?
Además, el resultado de un código similar en C++: A::g
A100:
¿Para qué serviría un destructor virtual como el de tu ejemplo? ¿Se puede anular en la descendencia?
¿Para qué serviría un destructor virtual como el de tu ejemplo? ¿Se puede anular en la descendencia?
En MQL siempre es virtual, aunque no se indique explícitamente
Así que no has respondido a la pregunta: ¿para qué?
Si todos los destructores en MQL son virtuales, entonces la pregunta de para qué sirve un destructor virtual se reduce a la pregunta de ¿para qué sirve un destructor? Y esta es una pregunta demasiado general.