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
¿Es posible declarar un array estático en una sección de la clase pública e inicializarlo en el constructor? (como abajo) (¿o sólo elemento por elemento?)
puedes
¿o tal vez lo que buscas es una inicialización estática del array después de todo?
¿se puede declarar un array estático en la sección pública de la clase e inicializarlo en el constructor? (como abajo) (¿o sólo elemento por elemento?)
Es algo así:
En general, esta pobreza de la POO es sorprendente frente a su brillantez. ¿Por qué no podemos inicializar las variables y las matrices como siempre al declararlas? No lo dudo, los teóricos moverán ahora un montón de teorías demostrando que soy un idiota, pero aun así...Puedes inicializar un array local y realizar ArrayCopy al campo del array correspondiente:
Esto también fue una idea, se puede colocar en el ámbito global fuera de cualquier clase también.
Es incluso más fácil, pero quería que fuera OOP))
Es algo así:
En general, esta pobreza de la POO es sorprendente frente a su brillantez. ¿Por qué no podemos inicializar las variables y las matrices como siempre al declararlas? No lo dudo, los teóricos moverán ahora un montón de teorías demostrando que soy un idiota, pero aun así...Tengo exactamente el mismo pensamiento)) cada vez que escribo usando OOP.
Esto también fue una idea, se puede colocar en el ámbito global fuera de cualquier clase.
Es incluso más fácil, pero quería que fuera OOP))
puedes
¿o tal vez lo que buscas es la inicialización de arrays estáticos después de todo?
opción interesante.
es llamar a un "método con constructor"?
interesante opción.
¿es una llamada a un "método con constructor"?
no
así es como se inicializa la estática.
no tienes que inicializarlo, así es como se verá el código:
no es una llamada a un método, sino el nombre completo del campo de la clase A::Mass[5];
pero si borras la línea, hay un error de compilación - la estática necesita asignar memoria antes de que se cree la instancia de la clase - esto es lo que hace la línea amarillano
así es como se escribe la inicialización de la estática
no tienes que inicializarlo, así es como se verá el código:
gracias, resulta que esta línea(static bool A::Mass[5];) no se puede trasladar al constructor de ninguna manera?
¿o es ésta la única forma de inicializar la estática en un caso como éste?
post anterior complementado
sí, la estática debe ser descrita por separado,@fxsaber me ayudó a entenderlohttps://www.mql5.com/ru/forum/325418/page4#comment_16116740
puedes inicializar clases estáticas en MQL5 también.
es decir, esta línea(static bool A::Mass[5];) no puede ser transferida al constructor?
No, es un campo estático de la clase. Es necesario asignar la memoria por adelantado, no en el momento de la creación de la instancia de la clase
y lo utilizarás más adelante como un array habitual
Si la pregunta es sobre la inicialización en forma de una sola cadena, entonces la versión de Sergei es lo que buscas, y simplemente no necesitas la estática.
post anterior complementado
sí, la estática debe ser descrita por separado,@fxsaber me ayudó a entenderlohttps://www.mql5.com/ru/forum/325418/page4#comment_16116740
puedes inicializar clases estáticas en MQL también.
Gracias, ahora lo he probado y me he dado cuenta de que es posible acceder a un array de esa manera.
La verdad es que tenemos OOP, pero no lo he visto en la Ayuda. Es una pena que no describa esos matices.
¡Muchas gracias a todos los que habéis respondido!