Erros, bugs, perguntas - página 1356
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Muito fresco e, o mais importante, ideologicamente correcto. Duas mãos a favor!
Mas isto não é feito pela simples razão de que traria inconvenientes significativos, e a vantagem seria apenas a correcção ideológica
Depois, o cordel é também um conjunto de números específicos. E uma imagem é também um número e um pulso eléctrico num chip.
Em geral, estudar engenharia eléctrica, colega.
Aqui está uma comparação de apontadores em C++ e descritores em MQL/C# e algumas outras línguas.
O desafio - quer conversar ao vivo com um companheiro.
1. Apontadores. Conhecemos a rua, o número da casa e o apartamento. Vamos ao endereço, acordamos o amigo, pegamos numa bolha, ele está excitado e a conversar )))
2. Descritores. Não sabemos o endereço exacto, ninguém está autorizado a entrar na casa, por exemplo, é o edifício FSB. Há um posto de controlo na casa, que se recusa a dizer o endereço pelo nome de um amigo (por descritor), se recusa a deixar entrar na casa (no espaço de endereços). A segurança chama o companheiro e pede-lhe que saia. Ele sai, vocês alegremente puxam a bolha, ele assobia, - o que é que vocês!!!! guardam-na imediatamente!!! Lá se vai a caminhada...Caminhando para casa com uma garrafa por abrir na mão, apercebe-se com grito que os descritores proporcionam segurança em troca de capacidades de sinalização.
Em geral, estudar engenharia eléctrica, colega.
Nenhum outro argumento?
Tenho trechos de código onde os apontadores são explicitamente convertidos em números (para interface com sistemas externos de escrita/leitura, bem como para análise e depuração de erros), se isto for proibido, então a flexibilidade será reduzida e teremos de refazer.
A propósito, que tal introduzir * e & operadores em MQL para permitir o acesso explícito a um objecto no primeiro caso, e levar um ponteiro de objecto no segundo (em vez do pesado GetPointer). O asterisco é uma obrigação, e não há nada na língua que o substitua.Sem ele, é impossível controlar situações como a descrita por A100 acima, quando em vez dos próprios objectos são executadas algumas acções de ponteiro. Pessoalmente, este é um problema constante, tenho de estar constantemente alerta ou especificar A.operator=(B), A.operator!=(B) em todo o lado, ou seja, perde-se a brevidade, e os operadores de sobrecarga tornam-se de facto inúteis.
Já levantei este problema uma vez, mas o assunto ficou parado. Vamos finalmente terminar esta questão.
Pergunta sobre variáveis externas.
Enfrentei uma situação em que a variável externa muda durante a execução do programa, mas quando o período de tempo é alterado, volta a tomar o valor definido na janela de propriedades. Por exemplo, se antes do início eu definir TradeEnable para EnableAll e alterar o valor para EnableBuy durante a execução do programa, então quando o gráfico mudar para outro período de tempo o valor voltará para EnableAll. O valor que defino no evento do temporizador e saída através de Comentário, não pode haver erro.
A variável TradeEnable não é afectada pela inversão dos gráficos. Ler o manual - Ao contrário das variáveis de entrada, os valores das variáveis externas podem ser alterados programmaticamente enquanto o programa está em execução.
É assim que o OnDeinit e o OnInit são criados.
Pergunta: Eu não entendo algo ou mudança de TradeEnable é um erro de tempo de execução?
Vamos finalmente terminar esta edição.
Dois operadores são aí sacrificados (== e !=) a fim de preservar todos os outros.
Vejo uma saída num padrão.
Se operator===(!=) estiver definido, será chamado. Se não estiver definido, as indicações serão comparadas com a igualdade. E se operador==(!=) estiver definido e as indicações devem ser comparadas entre si em matéria de igualdade, isto pode ser feito através do modelo especificado.
As alterações ao sistema existente são mínimas e o principal é que não afectarão aqueles que simplesmente comparam as indicações com a igualdade sem sobrecarga de operador==(!=).
Dois operadores são aí sacrificados (== e !=) a fim de preservar todos os outros.
Vejo uma saída num padrão.
Se operator===(!=) estiver definido, será chamado. Se não estiver definido, as indicações serão comparadas com a igualdade. E se operador==(!=) estiver definido e as indicações devem ser comparadas entre si em matéria de igualdade, isto pode ser feito através do modelo especificado.
As mudanças no sistema existente são mínimas e o principal é que não afectarão aqueles que simplesmente comparam apontadores sem operador==(!=) sobrecarga.
Claro que pode fazer comparações e atribuições através de funções separadas, mas qual é o objectivo? O objectivo é convencer os criadores a fazer uma solução adequada.