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
Você está se referindo à biblioteca padrão deles? )
Não, quero dizer que na MQL não se pode declarar um método virtual abstrato sem implementação. Na MQL, os métodos virtuais de uma classe base devem ter sempre uma implementação, que está repleta dos problemas que você mencionou.
Não há muitas interfaces básicas básicas em C#
Na verdade, há muita coisa.
Nem tudo é ruim, na minha opinião. Não há tantas interfaces principais básicas em C#, na minha opinião (não sou especialista em C#), que você não possa reduzir seus métodos a uma superclasse básica e depois herdar o que você precisa.
P.S. Implementar algo múltiplo através de construções como <<<<>>>> é um pouco chato. Melhor fazer funções através de operadores, por exemplo, a==b chamadas a.compareto( b ), a[comparador]==b comparador de chamadas.compare(a,b) etc.Imho, seria uma terrível amálgama.
+ Chamar métodos virtuais não é grátis.Não, quero dizer que na MQL não se pode declarar um método virtual abstrato sem implementação. Na MQL, os métodos virtuais de uma classe base devem ter sempre uma implementação, que está repleta dos problemas que você mencionou.
Não tenho certeza por que você não pode declará-lo sem implementação? Os métodos de classe abstrata têm sido apoiados na MQL há anos.
1. Na verdade, são muitos.
2. imho, seria uma terrível amálgama.
+ A chamada de métodos virtuais não é gratuita.1. eu vou saber.
2. Vamos ver o que acontece, se eu conseguir acertar o que estou fazendo agora, vou postar no fórum).
Não de graça, sim. Qualquer solução OOP universal se revela cara, mas se seu propósito é construir com facilidade e beleza Expert Advisors e indicadores simples (sem características especiais), então vale a pena, imho.
Não entendo realmente porque não se pode declarar sem implementação? Os métodos de classe abstrata têm sido apoiados na MQL há anos.
Porque uma entrada como esta causará um erro de compilação:
Porque uma entrada como esta causará um erro de tempo de compilação:
E a pessoa achou impossível declarar tal método na MQL, tanto quanto eu entendi de seu posto.
Poucas pessoas sabem (ainda menos quem sabe e usa), mas asfunções puramente virtuais podem ter um corpo
Eles também têm que ser sobrecarregados na classe descendente
Poucas pessoas sabem (ainda menos sabem e usam), masfunções puramente virtuais podem ter um corpo
Eles também têm que ser sobrecarregados na classe descendente
Então as interfaces ainda podem ter seu próprio código de método? Pode ser chamado de alguma forma? )
Acabei de me deparar com isto recentemente...
p.s. Eu tentei agora... Mesmo que A::f2() não tenha corpo, o compilador não reage a tal chamada. Isto é, eu tenho que pegar um erro mais tarde no tempo de execução. De jeito nenhum.
Hmm, característica interessante... Acho que é um método padrão, apenas para chamá-lo em descendentes de A::f2().
Testado - você está certo em geral =)
p.s. Embora eu tenha tentado agora... Mesmo que A::f2() não tenha corpo, o compilador não reage a tal chamada.
Aparentemente é uma barata, afinal de contas.