Errores, fallos, preguntas - página 1132

 
A100:

No hay error al intentar cambiar un puntero declarado como const

¿Está permitido declarar un constructor en una sección privada? ¿El compilador no obtiene un error?
 

Así, los estimados desarrolladores han respondido a la solicitud:

Equipo deapoyo2014.04.16 15:58

Haremos una bandera de parada, pero no tiene mucho sentido utilizarla en los indicadores. Los indicadores no están pensados para realizar cálculos súper pesados o en bucle en OnCalculate, porque a diferencia de los Asesores Expertos y los scripts, no se realizan en hilos separados. Significa que al hacer un bucle en el hilo del indicador se deja de formar la historia (sincronización, adición de ticks, etc.).
Equipo de apoyo 2014.04.16 15:59
Estado:AbiertoCompletado
 
Fleder:
¿Está permitido declarar un constructor en una sección privada? ¿El compilador no se queja?

Puede, porque esto en sí mismo no es controvertido, y cualquier restricción debe estar justificada. Dicho objeto puede ser creado dentro de la propia clase, y un puntero a dicho objeto puede ser creado fuera de la clase

 
A100:

Puede, porque esto en sí mismo no es controvertido, y cualquier restricción debe estar justificada. Dicho objeto puede ser creado dentro de la propia clase, y un puntero a dicho objeto puede ser creado fuera de la clase

Si puede, por qué el compilador dice que no puede:

 
mql5:
Ahora es obligatorio colocar miembros estáticos.

Gracias. Sin embargo, no está claro dónde deben colocarse... Mis primeros intentos de ponerlos en la raíz, antes de la función o directamente al lado de las clases no tuvieron éxito - el tipo de error sólo cambió a redefinición. Pero está bien, lo intentaré de nuevo, tal vez encuentre un buen lugar.


Fleder:Mejor aún, trata de evitar su uso.

Bueno, dime también... ¿Cómo almacenar toda esa información, que debe calcularse una vez en X (en algún lugar un minuto, en algún lugar una semana entera), y utilizar cada tic en varias clases? ¿O crees que es mejor empezar a emparejar diferentes matrices con noticias, niveles de resistencia y calcular las estadísticas de las últimas 10000 velas cada tick? :) ¿Y en algunos lugares varias veces por tic, por separado para cada objeto de clase? Entonces, sospecho que una carrera en el probador durante un año y medio no durará una hora, como ahora, sino todo el año y medio :)
 
Lone_Irbis:

Gracias. Sin embargo, no está claro dónde deben colocarse... Mis primeros intentos de ponerlos en la raíz, antes de la función o directamente al lado de las clases no tuvieron éxito - el tipo de error sólo cambió a redefinición. Pero bueno, lo intentaré de nuevo, tal vez encuentre el lugar adecuado.


Bueno, dímelo a mí también. ¿De qué otra manera puedo almacenar toda esa información que debe calcularse una vez en X (a veces durante un minuto, a veces durante toda una semana) y utilizar cada tic en varias clases? ¿O crees que es mejor empezar a emparejar diferentes matrices con noticias, niveles de resistencia y calcular las estadísticas de las últimas 10000 velas cada tick? :) ¿Y en algunos lugares varias veces por tic, por separado para cada objeto de clase? Entonces sospecho que correr en el probador durante un año y medio no tomará una hora, como ahora, sino todo el año y medio :)
Y es mejor no usar un probador tampoco.
 
Fleder:

Si se puede, ¿por qué el compilador dice que no se puede?

No me dice

class B {
        B() {}
};
void OnStart()
{
        B *b;
}
De nuevo: Este objeto puede crearse dentro de la propia clase, pero también puede crearse un puntero a dicho objeto fuera de la clase
 

No entiendo cómo se escanean los servidores al conectarse. Anteriormente, he introducido el nombre del servidor y la lista apareció, he añadido lo necesario (imagen 2, hay servidores añadidos hace unos quince días) En la imagen uno ya no se escanea los servidores necesarios, no puedo añadir. ¿Qué es lo que ya no es posible o cómo lo hace uno mismo?


 
Fleder:
Y es mejor no usar un probador tampoco.

Sí, y el forex es mejor no utilizarlo en absoluto tampoco. O el ordenador, para el caso :) No es nada saludable.

De todos modos, ya hay una solución. No es muy bonito, pero funciona. El arreglo se llama "Al diablo con tu OOP". %) Los errores se eliminaron al serrar todas las variables estáticas de las clases, quitarles el prefijo static y apilarlas ordenadamente una al lado de la otra.

En general, no sé por qué a los desarrolladores no les gustaban las variables estáticas y por qué tuvieron que eliminar la función de inicialización automática de variables, pero si hay que hacerlo, hay que hacerlo. Tendremos que utilizar soluciones...

 
Lone_Irbis:

Sí, y el forex es mejor no utilizarlo en absoluto tampoco. O el ordenador, para el caso :) No es nada saludable.

De todos modos, ya hay una solución. No es muy bonito, pero funciona. El arreglo se llama "Al diablo con tu OOP". %) Los errores se eliminaron al serrar todas las variables estáticas de las clases, quitarles el prefijo static y apilarlas ordenadamente una al lado de la otra.

En general, no sé por qué a los desarrolladores no les gustaban las variables estáticas y por qué tuvieron que eliminar la función de inicialización automática de variables, pero si hay que hacerlo, hay que hacerlo. Tendremos que utilizar soluciones...

La inicialización automática fue sustituida por la colocación explícita.

Y si te esfuerzas por la perfección, entonces:

1. la mejor manera de comerciar es no hacerlo.

2. La mejor manera de vivir la vida es no nacer.