OOP, modelos e macros em mql5, sutilezas e usos - página 7

 
Ilya Malev:

Na minha opinião, não é tão ruim assim. Não há tantas interfaces básicas em C#, na minha opinião (não sou um especialista em C#), que seus métodos não podem ser reduzidos a uma superclasse básica, e depois herdados por quem quer que precise do que

O que você quer dizer com "herdar quem precisa do quê"? Herdar não toda a classe, mas uma parte dela? ) Eu não conheço tal função
 
Alexey Navoykov:
O que você quer dizer com "herdar o que você precisa"? Herdar não toda a classe, mas uma parte dela? ) Eu não estou familiarizado com tal funcionalidade.

Não, eu quis dizer definir muitas funções virtuais e sobrecarregá-las em herdeiros, conforme a necessidade.

 
Ilya Malev:

Não, eu quis dizer definir muitas funções virtuais e sobrecarregá-las em herdeiros, conforme a necessidade.

É o caos total e a falta de controle. As interfaces definem métodos abstratos que devem ser implementados, e não "por necessidade". E com sua abordagem, se você esquecer de sobrecarregar um método em algum lugar, o programa compilará como se nada tivesse acontecido, mas em vez do método necessário, ele será chamado de boneco.
 
Alexey Navoykov:
É o caos total e a incontrolabilidade. As interfaces definem métodos abstratos que devem ser implementados, e não "por necessidade". Isto assegura a implementação destes métodos no objeto. E com sua abordagem se você esquecer de sobrecarregar um método em algum lugar, o programa será compilado como se nada tivesse acontecido, mas o programa será chamado em vez do método necessário.

Não uma exceção em branco, mas uma exceção "não implementada". Em C#, está em todos os lugares.

 
Alexey Navoykov:
... Se você esquecer de sobrecarregar um método em algum lugar, o programa compilará como se nada tivesse acontecido, mas ao invés do método exigido, será chamado um em branco. Isso é normal...

É assim que funciona na MQL, a propósito ;(.

 
Ilya Malev:

Não uma exceção em branco, mas uma exceção "não implementada". Também em C#, parece estar em todo o lugar.

Não é o ponto, você propõe pegar bugs em tempo de execução, enquanto esses bugs podem (e devem) ser pegos em tempo de compilação.
 
Vasiliy Sokolov:

É assim que funciona na MQL, a propósito ;(

Você quer dizer a biblioteca padrão deles? )
 
Alexey Navoykov:
Não é o ponto. Você propõe pegar os bugs em tempo de execução, enquanto estes bugs podem (e devem) ser pegos em tempo de compilação.

Acho que é melhor do que construir estruturas como modelo <,,,,,,,> para as aulas. Isso vai quebrar seu cérebro antes de você terminar de construir tal "sistema de classes".

 
Ilya Malev:

Acho que é melhor do que construir estruturas como modelo <,,,,,,,> para as aulas. Isso vai quebrar seu cérebro antes de você terminar de construir tal "sistema de classes".

Eu preferiria atormentar meu cérebro com o compilador, mas terei certeza de que meu programa funcionará corretamente e que um método de trabalho não será chamado.
 
Alexey Navoykov:
Eu preferiria atormentar meu cérebro com o compilador, mas terei certeza de que meu programa funcionará corretamente e que um método de trabalho será chamado, não algo louco.

Se a coisa toda tiver uma classe base simples, que aparece principalmente em todos os lugares, e então os elencos dinâmicos vão, pode funcionar).

Razão: