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
Bem visto. Seria bom se os argumentos fossem apoiados por código e não apenas blá, blá, blá, blá.
Apoiando-o.
Aqui está minha classe CMyObject:
A macro CONVERT_OBJECT_WITH_CHECK também é definida no final, que para a versão DEBUG realiza uma verificação adicional de conversão de ponteiro com base no tipo de objeto
Apoiando-o.
Aqui está minha classe CMyObject:
A macro CONVERT_OBJECT_WITH_CHECK também é definida no final, que, para a versão DEBUG, realiza uma verificação adicional de conversão de ponteiro com base no tipo de objeto
É lindo. É claro, é uma questão de gosto. Mas, com base na sintaxe da MQL, eu a escreveria desta forma:
É lindo. É claro, é uma questão de gosto. Mas, com base na sintaxe da MQL, eu a escreveria desta forma:
Sim, é isso mesmo.
Mas, este é meu senil "estilo de programação" (olá, Volchansky com seu recente fio condutor).
Tenho todas as enumerações - comece com E, e depois com a notação "hump" - nome. E os próprios tipos em enumeração começam com uma abreviação (até quatro letras) do tipo enumeração.
Portanto, como a enumeração é EMyObjectType, todos os valores começam com MOT_
Você é um idiota? )) Eu não disse uma palavra ruim sobre F#. Aprenda a ler e entender o que lhe é dito antes de publicar seus comentários estúpidos.
Se você comparar o OOP com FP, é mais sensato compará-lo com uma linguagem FP pura, ou seja, Haskel. F# já é mais ou menos assim, enquanto python e R não são de todo. É isso que eu quero dizer. Caso contrário, podemos chegar a um ponto em que C++ é também uma língua FP.Você é um troll analfabeto. Para constar, todos os idiomas listados são funcionais de uma forma ou de outra. Vá e aprenda a área temática. A pergunta foi feita para entender qual quadro de referênciaAndrei pode estar praticando uma das línguas da PF, portanto a listagem foi muito geral.
O que isso quer dizer?
O que deveria estar no "objeto base" de acordo com você?
Pessoalmente tenho quase TODOS os objetos em todos os meus projetos - herdados da CMyObject: CObject público, (em meu objeto são adicionados mais dois campos - nome da classe e ID da instância), e descobri repetidamente que preciso muito da funcionalidade CObject::Comparar(). Algumas vezes os indicadores de lista também vieram a calhar.
CObject tem um objetivo - fornecer controle de tipo. E a gerencia de forma instável. Métodos como Next(), Prev(), etc., são para coleções muito especializadas. Eles não pertencem à CObject. O mesmo se aplica aos métodos de Salvar e Carregar. Também seria bom não ter Comparer nele, mas esta é a única solução sem interfaces.
Quanto ao método Type(), ele não fornece digitação rigorosa, pois retorna o número usual. Você pode ver no exemplo de seu próprio código. Você define um novo método GetType() que retorna o tipo como uma enumeração. Realmente não há outra maneira, eu mesmo faço isso. É por isso que o CObject padrão tem que ser anexado a ele, e é incorreto.
Vamos continuar em CObject::Comparar().
Tenho esse objeto CFactoryBalanceResultSeries - é uma série com resultados de equilíbrio com referência ao objeto de fábrica do Expert Advisor. Na verdade, é uma curva de equilíbrio na história com referência ao Expert Advisor que a negociou.
Portanto, tenho um roteiro onde comparo essas mesmas séries de equilíbrio.
Desde que haja apenas duas séries, é fácil compará-las. Mas quando há dezenas delas - não se pode comparar a olho nu, é preciso uma comparação mais formal.
E só para automatizar este processo - eu tive que escrever uma função que classificasse estas mesmas séries. E aqui foi útil, porque a classe CFactoryBalanceResultSeries é uma herdeira da CObject com sua função de comparação. Se anularmos esta função, temos uma possibilidade pronta de classificar as séries.
É assim que esta função se parece no meu caso:
Ou seja, dependendo do tipo de classificação - selecionamos a função de comparação necessária, que é usada na função de classificação geral.
Por exemplo, se quisermos ordenar a série de saldos pela parte do último sorteio a partir do máximo, serão utilizadas as seguintes funções:
Vou continuar com CObject::Comparar().
Do recente
Não é muito bonito, imho.
Você poderia usar um ponteiro para uma função.
Sim, isso mesmo.
Mas, esse é meu "estilo senil de programação" (olá, Wolchansky com seu recente fio condutor).
Tenho todas as enumerações - comece com E, e depois com a notação "hump" - o nome. E os próprios tipos em enumeração começam com uma abreviação (até quatro letras) do tipo enumeração.
Correspondentemente, desde a enumeração do EMyObjectType - todos os valores começam com MOT_
Sim, eu tenho a mesma enumeração.
ZS: Acabei de chegar ao computador. Como era de se esperar, este fio desceu rapidamente para o lixo). Vou tentar terminar a história sobre funções virtuais mais tarde. Devemos chamar este fórum de Blá Blá Blá Blá Blá).
Li os diferentes interesses de cada um... Estou no processo de redesenhar uma classe para montar e gerenciar uma grade virtual, preciso dela.