Erros, bugs, perguntas - página 1707

 
Комбинатор:
Ao ponteiro é atribuído um valor, que é depois sobregravado com um novo A.

Onde? aqui mesmo?

isto[0] = novo A;

Aqui o operador[] devolve o valor contido na célula Data[0]. Não uma referência a esta célula ou um ponteiro para ela, mas apenas uma cópia do valor contido nesta célula, ou seja, o valor. Nada pode ser atribuído a esta cópia, é claro. Não compreendo como é que o operator= muda isto.

 
Sergei Vladimirov:
E ainda não compreendo o último exemplo. A sobrecarga do operador "=" na classe A transforma isto[0] de valor para valor l... Não consigo perceber como. Isto é algum tipo de característica do MCL, não existe tal comportamento nos profissionais.fxsaber, como chegou sequer a esta construção? Quero dizer sobrecarga = em A. Ou por tentativa e erro?
Com plena compreensão, fi-lo. Caso contrário, definitivamente não teria escrito tal coisa.

Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos

Bibliotecas: TypeToBytes

fxsaber, 2016.09.21 21:25

Publicado. Agora para qualquer variável (estrutura ou tipo padrão) não só a leitura funciona como com array, mas também WRITE:

_W(AnyVariable)[Pos] = AnyValue; // Записывает по байтовому смещению Pos значение AnyValue в переменную AnyVariable

Não foi fácil de adivinhar antes da implementação - provavelmente acabou por ser um bom teste de proficiência média do OOP: só conheço os clássicos para as aulas.

Se alguém souber algo semelhante, por favor partilhe a ligação para a educação.


 
fxsaber:
Com plena compreensão, fi-lo. Caso contrário, eu não teria escrito tal coisa.

Então compreende tudo, mas não o pode dizer? )) Estou a ver.
 
Sergei Vladimirov:
Então compreende tudo, mas não o pode dizer? )) Estou a ver.
Sim, bem, isso acontece. Não posso formulá-lo. É por isso que estou a pedir aos programadores que o façam correctamente.
 
Sergei Vladimirov:

Onde? aqui mesmo?

isto[0] = novo A;

Aqui o operador[] devolve o valor contido na célula Data[0]. Não uma referência a esta célula ou um ponteiro para ela, mas apenas uma cópia do valor contido nesta célula, ou seja, o valor. Nada pode ser atribuído a esta cópia, é claro. Não percebo como é que o operador= na classe A muda isto.

Talvez seja tudo sobre essas mesmas questões com referências no MCL.

A* operator []( const int Pos )
{
    return(this.Data[Pos]);
}

Pode acontecer que não seja o valor aqui devolvido, mas sim uma referência a ele, ou seja, um valor... Mas porque não lhe pode ser imediatamente atribuído um novo valor, porque é que precisamos de operator= na classe A? Eu não entendo...

 
Sergei Vladimirov:

Provavelmente, é tudo sobre as mesmas coisas de referência em MKL.

Pode acontecer que não seja um valor que é devolvido aqui, mas uma referência a ele, ou seja, um valor... Mas porque não lhe pode ser imediatamente atribuído um novo valor, porque é que precisamos de operator= na classe A? Eu não entendo...

Quando se atribui algo a um ponteiro de valor, o ponteiro é automaticamente lançado a uma referência de objecto. Bem, todos nasceram ontem!

Há muito tempo que peço isso à Mesa, mas dizem que não é seguro, embora na realidade não seja mais perigoso do que passar argumentos por referência.

 
Alexey Navoykov:

Quando se atribui algo a um ponteiro de valor, o ponteiro é automaticamente convertido em referência a um objecto. É como ontem, não é?

Agora compreendo-o, obrigado.
 
Falta a capacidade de destacar a(s) fila(s) na fita. Posso olhar para ela, mas não a posso destacar.
 
Que diabos é isto?
2016.09.26 14:02:11.858 Books   invalid book item[RTS-12.16,buy,98090.00000,-16]
 

Descoordenação de tipo

MqlTick time_msc - longo.

CopyTicks from - ulong.