Fizeram uma pergunta em particular sobre o que isto significa. Apressei-me no fórum para respondê-lo, pois encontrei um exemplo útil que traz clareza.
A propósito, se você fala inglês, é muito útil para o Google tal pergunta em inglês, não em MQL, mas em C++. Por exemplo, como este
http://www.google.com/search?q=const+in+c%2B%2B+after+function&oq=const+in+c%2B%2B&sourceid=chrome&ie=UTF-8
Haverá muitos links para fóruns de programação pura, e C++ é bastante similar ao MQL
Traduzi os comentários para o russo e fiz alguns ajustes para compatibilidade com MQL. Estou anexando o roteiro abaixo. Basta compilá-lo e tudo se tornará claro.
A documentação não traz alguma clareza?
Um método com o modificadorconstante é chamado de constante e não pode modificar os membros implícitos de sua classe. A declaração de funções de classe constantes e parâmetros constantes é chamada decontrole de constância-correção. Com este controle, você pode ter certeza de que o compilador manterá o controle dos valores inalterados dos objetos e gerará um erro na fase de compilação em caso de violação.
O modificadorconstante deve ser colocado após a lista de argumentos dentro da declaração de classe. A definição fora de uma classe também deve incluir o modificador deconstância:
Um argumento adicional para o uso do controle de integridade é que o compilador faz otimizações especiais, por exemplo, colocando um objeto persistente na memória somente de leitura.
Umafunção estática não pode ser definida com o modificadorconstante, porque este modificador garante que os membros da instância permaneçam inalterados quando tal função é chamada. Mas, como mencionado acima, uma função estática, por definição, não pode acessar membros de classe não estáticos.
https://www.mql5.com/ru/docs/basis/oop/staticmembers
Além disso, na minha opinião, você não apresentou o exemplo mais bem sucedido de composição de uma estrutura (primeiro os métodos, depois os dados dos membros). E, por isso, é melhor envolver tudo em uma classe do que em uma estrutura, uma vez que as estruturas são geralmente usadas como uma união de dados (sem métodos).
- www.mql5.com
A documentação não esclarece as coisas?
https://www.mql5.com/ru/docs/basis/oop/staticmembers
E na minha opinião, você não forneceu o melhor exemplo de como montar uma estrutura (primeiro os métodos, depois os dados dos membros). E, por isso, é melhor envolver tudo em uma classe do que em uma estrutura, uma vez que as estruturas são geralmente usadas como uma união de dados (sem métodos).
Contém
Eu me lembrei que estava escrito em algum lugar em um documento, mas não consegui encontrá-lo. Eu copiei um exemplo do stackoverflow. Onde colocar os dados é um assunto pessoal do programador, embora eu mesmo os tenha colocado no início. Se usar estruturas ou classes é um assunto pessoal para o programador )))
Entrando em
Lembrei que estava escrito em algum lugar no documento, mas não consegui encontrá-lo. Roubei um exemplo rápido do stackoverflow. Cabe ao programador onde colocar os dados, embora eu mesmo os tenha colocado no início. A utilização de estruturas ou classes fica a cargo do programador ))))
Você pode dizer "um assunto particular" sobre muitas coisas de tal maneira. Mas é você quem está explicando isso a alguém e não pessoalmente, mas publicamente. E seu "caso particular" contradiz um bom estilo de programação. E a pessoa a quem você está explicando, e muitos outros usuários podem tomar isso como um bom estilo, o que não é.
E sobre a pessoa que queria (ou talvez liderasse) o curso aqui, um tal "bloop, bloop, bloop" diz muito.
Quais membros são explícitos, quais estão implícitos?
Aparentemente, neste contexto, estes são os membros que chamam o método. Ou, caso contrário, eles são os membros que podem ser acessados através deste método.
Em C++, isto significa que um método não pode mudar os membros da classe, exceto para os membros declarados mutáveis.
Como na MQL dificilmente se pode esperar isto, isto significa que um método não pode mudar um objeto em princípio.
Em C++, isto significa que um método não pode mudar os membros da classe, exceto para os membros declarados mutáveis.
Como na MQL dificilmente se pode esperar isto, isto significa que um método não pode mudar um objeto em princípio.
Um método constante não pode mudar apenas o objeto que o chamou.
Isso é uma gralha?
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Fez uma pergunta em particular, o que isso significa. Encontrei um exemplo útil no fórum que ajuda a esclarecê-lo.
A propósito, se você fala inglês, é muito útil para o Google tal pergunta em inglês, não em MQL, mas em C++. Por exemplo, como este
http://www.google.com/search?q=const+in+c%2B%2B+after+function&oq=const+in+c%2B%2B&sourceid=chrome&ie=UTF-8
Haverá muitos links para fóruns de programação pura, e C++ é bastante similar ao MQL
Traduzi os comentários para o russo e fiz alguns ajustes para compatibilidade com MQL. Estou anexando o roteiro abaixo, compilando-o e tudo se tornará claro.