MQL5 O compilador não faz distinção entre uma classe e um ponteiro para ela - página 7
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
Então você está propondo proibir completamente a nomeação implícita de indicadores? Não creio que muitas pessoas aqui ficariam felizes com isso.
Deixe que todos tenham uma escolha.
Eu certamente não quero esse tipo de truque.
Bem, isso é desnecessário dizer. Há um vazamento de memória.
Um vazamento de memória, você diz? Que tal isso? )))
Um vazamento de memória, você diz? Que tal isso? )))
delete item;
Portanto, assume que o assunto está preparado para ser tratado dessa forma. Quantos prevêem essa possibilidade?
Portanto, isto pressupõe que o objeto está preparado para ser tratado desta forma. Muitas pessoas prevêem tal possibilidade?
Acho que se alguém escreve a palavra new, deve saber exatamente onde a palavra correspondente delete está localizada em outro lugar em seu código.
Deixe que todos tenham uma escolha.
Eu certamente não preciso de tais truques.
Já a utilizo na MQL4. Como funcionará então, se a sintaxe do idioma for a mesma?
Bem, como proteção contra tais ações, pode-se criar um método privado em uma classe:
Embora, francamente, eu não veja um problema aqui. Se você atribuir algo a um objeto de classe, você espera, a priori, que o operador de cópia seja chamado. Se você o quer, você o obtém. Que diferença faz se havia um ponteiro ou um objeto? O tipo de classe é o mesmo. Não se pode atribuir nenhuma classe para canhotos. É por isso que tudo parece mais um tédio ocioso.
O caso oposto, com o ponteiro à esquerda, é outra questão. Aí você poderia esperar atribuir algo ao ponteiro, mas acabou sendo a cópia de um objeto.
O caso oposto, com o ponteiro à esquerda, é diferente. Aí você pode esperar atribuir algo ao ponteiro, mas acontece que você está copiando um objeto.
E você não pode proibir isto, caso contrário não poderá copiar o objeto quando realmente precisar.
Como resultado, você tem que deixar tudo como está. Esteja ciente do que você está fazendo.
E você não pode proibi-lo, caso contrário, não poderá copiar o objeto quando realmente precisar.
No final, você tem que deixar as coisas como estão. Esteja ciente do que você está fazendo.
О! Isso é o principal.
Há muitas pessoas aqui que sabem como navegar nos modos de gerenciamento de memória? Compreender a diferença entre AUTOMÁTICO e DINÂMICO.
E ouviram algo sobre STATIC e BASED (embora isto não seja necessário).
E você não pode proibi-lo, caso contrário, não poderá copiar o objeto quando realmente precisar.
No final, você tem que deixar as coisas como estão. Esteja ciente do que você está fazendo.
Por que não pode funcionar? Existem * e & operadores para reduzi-lo ao que é necessário.
Onde existe um *?