Preguntado en privado qué significa esto. Me apresuré a responder en el foro, ya que encontré un ejemplo útil que aporta claridad.
Por cierto, si hablas inglés, es muy útil buscar esa pregunta en inglés, no en MQL, sino en C++. Por ejemplo, así
http://www.google.com/search?q=const+in+c%2B%2B+after+function&oq=const+in+c%2B%2B&sourceid=chrome&ie=UTF-8
Habrá muchos enlaces a foros de programación pura, y C++ es bastante similar a MQL
He traducido los comentarios al ruso y he hecho algunos ajustes para la compatibilidad con MQL. Te adjunto el script a continuación, sólo tienes que compilarlo y todo se aclarará.
¿La documentación no aporta ninguna claridad?
Un método con el modificadorconst se llama constante y no puede modificar los miembros implícitos de su clase. La declaración de funciones de clase constantes y de parámetros constantes se denominacontrol de corrección de const. Con este control puede estar seguro de que el compilador llevará la cuenta de los valores no modificados de los objetos y generará un error en la fase de compilación en caso de infracción.
El modificadorconst debe colocarse después de la lista de argumentos dentro de la declaración de la clase. La definición fuera de una clase también debe incluir el modificadorconst:
Un argumento adicional para utilizar el control de integridad es que el compilador realiza optimizaciones especiales, por ejemplo, colocar un objeto persistente en memoria de sólo lectura.
Unafunción estática no puede ser definida con el modificadorconst, porque este modificador garantiza que los miembros de la instancia permanecen sin cambios cuando dicha función es llamada. Pero, como se mencionó anteriormente, una función estática por definición no puede acceder a los miembros no estáticos de la clase.
https://www.mql5.com/ru/docs/basis/oop/staticmembers
Además, en mi opinión, no has presentado el ejemplo más acertado de confección de una estructura (primero los métodos y luego los datos de los miembros). Y, para ello, es mejor envolverlo todo en una clase y no en una estructura, ya que las estructuras suelen utilizarse como unión de datos (sin métodos).
- www.mql5.com
¿La documentación no aclara las cosas?
https://www.mql5.com/ru/docs/basis/oop/staticmembers
Y en mi opinión, no proporcionaste el mejor ejemplo de cómo armar una estructura (primero los métodos y luego los datos de los miembros). Y, para ello, es mejor envolverlo todo en una clase y no en una estructura, ya que las estructuras suelen utilizarse como unión de datos (sin métodos).
Contiene
Recordé que estaba escrito en algún lugar en un documento, pero no pude encontrarlo. He copiado un ejemplo de stackoverflow. Dónde poner los datos es una cuestión personal del programador, aunque yo mismo los pongo al principio. El uso de estructuras o clases depende del programador )))
Entrar en
Recordé que estaba escrito en alguna parte del documento, pero no lo encontré. He robado un ejemplo rápido de stackoverflow. Depende del programador dónde poner los datos, aunque yo mismo los pongo al principio. El uso de estructuras o clases depende del programador ))))
Se puede decir "un asunto privado" sobre muchas cosas de tal manera. Pero eres tú quien se lo explica a alguien y no en persona sino públicamente. Y su "asunto privado" contradice un buen estilo de programación. Y la persona a la que se lo explicas, y muchos otros usuarios pueden tomarlo como un buen estilo, que no lo es.
Y sobre la persona que quiso (o quizás dirigió) el curso aquí, semejante "bloop, bloop, bloop" dice mucho.
¿Qué miembros son explícitos y cuáles implícitos?
Aparentemente, en este contexto, estos son los miembros que llaman al método. O, de lo contrario, son los miembros a los que se puede acceder a través de este desde el método.
En C++, esto significa que un método no puede cambiar los miembros de la clase, excepto los miembros declarados mutables.
Como en MQL no se puede esperar esto, significa que un método no puede cambiar un objeto en principio.
En C++, esto significa que un método no puede cambiar los miembros de la clase, excepto los miembros declarados mutables.
En MQL, esto significa que un método no puede modificar un objeto en principio.
Un método constante no puede cambiar sólo el objeto que lo llamó.
¿Es una errata?
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Hizo una pregunta en privado, ¿qué significa? He encontrado un ejemplo útil en el foro que ayuda a aclararlo.
Por cierto, si hablas inglés es muy útil buscar en Google esa pregunta en inglés, no en MQL, sino en C++. Por ejemplo, así
http://www.google.com/search?q=const+in+c%2B%2B+after+function&oq=const+in+c%2B%2B&sourceid=chrome&ie=UTF-8
Habrá muchos enlaces a foros de programación pura, y C++ es bastante similar a MQL
He traducido los comentarios al ruso y he hecho algunos ajustes para la compatibilidad con MQL. Te adjunto el script de abajo, compílalo y todo se aclarará.