Discussão do artigo "Fundamentos básicos da Programação MQL5: Lista" - página 9

 
C-4:
Talvez com "implementação normal" você queira dizer implementação em modelos.
O que é isso? O que você quer dizer com modelos? Alguma forma especial de pressionar as teclas com os dedos durante a programação?
 
Integer:
Como é isso? O que você quer dizer com padrões? Alguma maneira especial e distorcida de pressionar as teclas com os dedos durante a programação?

Os modelos, como um legado do antigo método de substituição de macros em tempo de compilação, na verdade perderam sua relevância para a programação orientada a objetos há muito tempo.

Nas linguagens modernas, essas tarefas são resolvidas por ferramentas de tempo de execução, por exemplo, genéricos em C#, RTTI de reconhecimento de tipos dinâmicos e o uso de tipos variantes.
É claro que ainda há pessoas antigas que gostam de modelos, mas, na minha opinião, como programador, isso é um sinal de que é hora de se aposentar.

 
revers45:

Os modelos, como um legado do método antiquado de substituição de macros em tempo de compilação, há muito tempo perderam sua relevância para a programação orientada a objetos.

Nas linguagens modernas, essas tarefas são resolvidas por ferramentas de tempo de execução, por exemplo, genéricos em C#, reconhecimento de tipos dinâmicos RTTI e aplicação de tipos variantes.
É claro que ainda há veteranos que gostam de modelos, mas, na minha opinião, como programador, isso é um sinal de que é hora de se aposentar.

É engraçado ler que os modelos há muito se distanciaram das substituições de macros e existem com bastante sucesso como um paradigma separado.

Os genéricos em C# são apenas modelos muito reduzidos e, na verdade, não são de tempo de execução, mas de tempo de compilação, o que faz com que sua velocidade seja maior).

Mas apenas RTTI e tipos variantes sugerem alguns pensamentos ruins....

____________________

Ok, tudo isso é legal, é claro. Mas na MQL5 há apenas funções de modelo, não há classes (haverá?). Portanto, listas em modelos não são possíveis com as ferramentas atuais.

 
TheXpert:

É engraçado ler que os modelos há muito tempo se distanciaram das substituições de macros e existem com bastante sucesso como um paradigma separado.

Os genéricos em C# são apenas modelos muito reduzidos e, em geral, não é o tempo de execução, mas o tempo de compilação, devido ao qual a velocidade de seu uso é maior).

Mas apenas RTTI e tipos variantes sugerem alguns pensamentos ruins....

____________________

Ok, tudo isso é legal, é claro. Mas na MQL5 há apenas funções de modelo, não há classes (haverá?). Portanto, listas em modelos não podem ser realizadas com as ferramentas atuais.

Você está feliz porque os paradigmas fósseis são suas lembranças calorosas do século passado e parecem ser uma bagagem exaustiva de conhecimento.

Mas não há necessidade de eclipsar as abordagens modernas por causa disso, porque os MQs presumirão que seus clientes são nostálgicos em relação ao avô Macro Assembler e ao ANSI C e ignorarão as sugestões para melhorar a MQL5.
.

 
reversão45 , um pouco errado, finalmente descobri do que eu estava falando. Existe a possibilidade de escrever uma função universal para garantir a sobrecarga. Você não escreve uma função para cada tipo de argumento, você escreve um modelo de função. Os caras acima confundiram muito alguma coisa, pois só temos modelos de função aqui. Mas a conversa começou com quais tipos de conhecedores, mas a pergunta sobre modelos foi feita, então o silêncio veio imediatamente. Eles parecem ser falantes inteligentes, só isso.
[Excluído]  

Como não há modelos, você pode fazer isso em macros, acho que alguém até escreveu um artigo sobre esse tópico (macros em vez de modelos) + análogo de algoritmos em stl também em macros. Mas, na minha opinião, tudo isso deveria estar na biblioteca padrão em modelos, é errado, de alguma forma, escrever seus próprios contêineres (útil apenas para fins educacionais), é mais fácil fazer isso com uma matriz.

upd: não há necessidade de algoritmos em macros, os modelos de função estão disponíveis. Não gosto de inserção virtual/... é melhor usar afirmações de verificação de tipo no modo de depuração.

 
Baixei o anexo e muitos lugares apresentam erros de compilação, como: 'm_head' - o membro do objeto constante não pode ser modificado CiSingleList.mqh 504 & nbsp; 9
 
É um bom artigo e acho que foi escrito para todos na comunidade Mql5 porque tudo está claramente explicado.
 
Devo dizer que este artigo oferece uma visão clara sobre a OOP. Estou comovido com o fato de que, depois de ler este artigo, ganhei muito, e faço uma reverência
 

Olá,

Ao tentar compilar o arquivo test_MQL5_List.mq5, obtive os seguintes erros:

'm_head' - o membro do objeto constante não pode ser modificado CiSingleList.mqh 504 9
'm_tail' - o membro do objeto constante não pode ser modificado CiSingleList.mqh 505 9
'm_size' - o membro do objeto constante não pode ser modificado CiSingleList.mqh 496 9