Eso es lo que has pedido. Una instancia de una clase... con un modificador externo. Absurdo, por supuesto. Pero...
Eso es lo que has dicho. Pero no he encontrado ninguna necesidad de ello.
sargazo:
¿Pero no sería una buena idea hacer una instancia de una estructura externa?
No entiendo qué tiene que ver el exterior con todo esto. No necesito "hacer" algunos datos para ser compartidos, para que puedan ser incluidos en cualquier otra clase. Y estas variables no deben perder sus valores durante la ejecución del programa, es decir, deben ser estáticas. Me está hablando de la parte externa. ¿Para qué?
No lo he comprobado. Como lo que se necesita aún no se ha implementado.
sergeev:
¿Qué necesitas?
Voy a repetir lo que necesito... Existe una estructura cuyos miembros deben guardar sus valores durante la ejecución del programa, pero cuando se accede a cualquier método de cualquier clase que utilice esta estructura, los miembros pueden ser modificados. Entiendo que tienen que ser estáticos. Estos miembros deben estar en una sola instancia. Los miembros de esta estructura serán utilizados por muchas clases y por el propio Asesor Experto.
Antes era así:
struct Symbol_Properties
{
staticdatetime gdt_Quote; // Время поступления последней котировкиstaticdouble gda_Price [2]; // Текущие рыночные цены (0 - Bid, 1- Ask)staticdouble gd_Spread; // Размер спреда в пунктахstaticdouble gd_Swap; // Свопstaticdouble gd_Comission; // Комиссияstaticdouble gd_Pt; // Величина одного пунктаstaticint gi_Digits; // Количество знаков в цене после запятойstaticint gi_StopLevel; // Минимально-допустимый уровень стоп-лосса/тейк-профита в пунктахstaticint gi_FreezLevel; // Уровень заморозки ордеров в пунктах
};
Symbol_Properties::gdt_Quote = 0;
Symbol_Properties::gda_Price [2] = {0.0, 0.0};
Symbol_Properties::gd_Spread = 0;
Symbol_Properties::gd_Swap = 0;
Symbol_Properties::gd_Comission = 0;
Symbol_Properties::gd_Pt = 0;
Symbol_Properties::gi_Digits = 0;
Symbol_Properties::gi_StopLevel = 0;
Symbol_Properties::gi_FreezLevel = 0;
Pero, en este caso, es inconveniente referirse a tales variables, porque el "nombre" es largo. Es decir
Déjame repetir lo que necesito... Existe una estructura cuyos miembros deben guardar sus valores durante la ejecución del programa, pero cuando se accede a cualquier método de cualquier clase que utilice esta estructura, los miembros pueden ser modificados. Entiendo que tienen que ser estáticos. Estos miembros deben estar en una sola instancia. Los miembros de esta estructura serán utilizados por muchas clases y por el propio Asesor Experto.
¿cuál es el problema de referirse a una única variable creada?
в чем проблема обращаться к единственной созданной переменной?
Todo el mundo tiene derecho a vivir en el mundo de sus propias ilusiones,
pero destruir el mundo del usuariohoz esinusualmente difícil
porque no puedes meterte en su cabeza y averiguar lo que está imaginando.
"no perderá su valor actual" - ¿Crees que las variables se crean para perder sus valores?
Que en realidad:
Las variables tienenun ámbito, una duración de almacenamiento y una vinculación.
Aprende qué es: qué variable tiene qué ámbito, cuándo es visible, cuándo se crea, cuándo se destruye y dónde y cuándo se le puede pasar.
Brevemente sobre la vida útil del almacenamiento: estática (variable declarada fuera de todas las funciones o con especificador estático) - hora de la muerte = fin de la existencia del programa
automática (una variable declarada dentro de una función) - momento de la muerte = salida de la función donde se crea
dinámico (variable creada con la palabra clave new) - momento de la muerte = uso de la palabra clave delete
Si las variables de clase o estructura no pierden sus valores en tiempo de ejecución, ¿por qué se declaran estáticas aquí?
Están en la sección pública, se podría decir como en la estructura...
Eres un obtuso o una obtusa, perdona que sea tan brusco, pero está escrito en blanco y negro:
Porejemplo, tenemos una claseCParser destinada a analizar textos, ynecesitamos contarel número total de palabras y caracteres procesados. Bastacon declarar losmiembros necesariosde la clase como estáticos e inicializarlos globalmente, para que todas las instancias de la claseutilicen contadores comunes de palabras y caracteres al trabajar.
Dondequiera que haya una referencia a:
Las variables de clase o estructura pierden sus valores en tiempo de ejecución
Dice que preservando los principios de la POO y no creando variables globales, podemos contar el número de algunas palabras con la ayuda de un miembro estático de la clase,
(miembro estático de la clase) se crea como una única instancia y no depende de cuántos objetos de una clase determinada se creen.
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
¿Qué es esto?
Eso es lo que has pedido. Una instancia de una clase... con un modificador externo. Absurdo, por supuesto. Pero...
Eso es lo que has dicho. Pero no he encontrado ninguna necesidad de ello.
¿Pero no sería una buena idea hacer una instancia de una estructura externa?
No entiendo qué tiene que ver el exterior con todo esto. No necesito "hacer" algunos datos para ser compartidos, para que puedan ser incluidos en cualquier otra clase. Y estas variables no deben perder sus valores durante la ejecución del programa, es decir, deben ser estáticas. Me está hablando de la parte externa. ¿Para qué?
Esto es lo que has pedido. Una instancia de clase... con un modificador externo. Absurdo, por supuesto. Pero...
¿compiló en absoluto?
¿Compiló en absoluto?
No lo he comprobado. Como lo que se necesita aún no se ha implementado.
¿Qué necesitas?
Voy a repetir lo que necesito... Existe una estructura cuyos miembros deben guardar sus valores durante la ejecución del programa, pero cuando se accede a cualquier método de cualquier clase que utilice esta estructura, los miembros pueden ser modificados. Entiendo que tienen que ser estáticos. Estos miembros deben estar en una sola instancia. Los miembros de esta estructura serán utilizados por muchas clases y por el propio Asesor Experto.
Antes era así:
Pero, en este caso, es inconveniente referirse a tales variables, porque el "nombre" es largo. Es decir
Symbol_Properties::gd_Pt = 0;¿Cómo ponerlo en práctica?
Déjame repetir lo que necesito... Existe una estructura cuyos miembros deben guardar sus valores durante la ejecución del programa, pero cuando se accede a cualquier método de cualquier clase que utilice esta estructura, los miembros pueden ser modificados. Entiendo que tienen que ser estáticos. Estos miembros deben estar en una sola instancia. Los miembros de esta estructura serán utilizados por muchas clases y por el propio Asesor Experto.
¿cuál es el problema de referirse a una única variable creada?
¿Y referirse a ellos por NOMBRE DE LA ESTRUCTURA.NOMBRE DEL MIEMBRO?
Pero, ¿hay alguna garantía de que esta variable no perderá su valor actual en tiempo de ejecución?
Y referirse a ellos por NOMBRE DE LA ESTRUCTURA.NOMBRE DEL MIEMBRO ?
nombre de la variable.nombre del miembro.
Pero, ¿hay alguna garantía de que esta variable no pierda su valor actual durante la ejecución del programa?
Por ejemplo, ¿el cuartel general?
¿tiene ejecución multihilo en EA?
¿qué quiere decir que se perderá? lo que se pone en él, ¿por qué se va a perder?
Todo el mundo tiene derecho a vivir en el mundo de sus propias ilusiones,
pero destruir el mundo del usuariohoz esinusualmente difícil
porque no puedes meterte en su cabeza y averiguar lo que está imaginando.
"no perderá su valor actual" - ¿Crees que las variables se crean para perder sus valores?
Que en realidad:
Las variables tienenun ámbito, una duración de almacenamiento y una vinculación.
Aprende qué es: qué variable tiene qué ámbito, cuándo es visible, cuándo se crea, cuándo se destruye y dónde y cuándo se le puede pasar.
Brevemente sobre la vida útil del almacenamiento:
estática (variable declarada fuera de todas las funciones o con especificador estático) - hora de la muerte = fin de la existencia del programa
automática (una variable declarada dentro de una función) - momento de la muerte = salida de la función donde se crea
dinámico (variable creada con la palabra clave new) - momento de la muerte = uso de la palabra clave delete
¿tiene multithreading en el EA?
¿Qué quieres decir con que se perderá? lo que pongas ahí estará ahí, ¿por qué se va a perder?
Abre la documentación aquí y ve eso:
Si las variables de clase o estructura no pierden sus valores durante la ejecución del programa, ¿por qué se declaran aquí como estáticas?
Están en la sección pública, se puede decir que como en la estructura...
Abre la documentación aquí y ve eso:
Si las variables de clase o estructura no pierden sus valores en tiempo de ejecución, ¿por qué se declaran aquí como estáticas?
Están en la sección pública, se puede decir que como en la estructura...
Entonces... Lee la segunda frase del enlace que te han dado.
Un static en una clase tiene un significado ligeramente diferente al de un static en una función.
Si las variables de clase o estructura no pierden sus valores en tiempo de ejecución, ¿por qué se declaran estáticas aquí?
Están en la sección pública, se podría decir como en la estructura...
Eres un obtuso o una obtusa, perdona que sea tan brusco, pero está escrito en blanco y negro:
Porejemplo, tenemos una claseCParser destinada a analizar textos, ynecesitamos contarel número total de palabras y caracteres procesados. Bastacon declarar losmiembros necesariosde la clase como estáticos e inicializarlos globalmente, para que todas las instancias de la claseutilicen contadores comunes de palabras y caracteres al trabajar.
Dondequiera que haya una referencia a:
Las variables de clase o estructura pierden sus valores en tiempo de ejecución
Dice que preservando los principios de la POO y no creando variables globales, podemos contar el número de algunas palabras con la ayuda de un miembro estático de la clase,
(miembro estático de la clase) se crea como una única instancia y no depende de cuántos objetos de una clase determinada se creen.