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ê já descobriu tudo. Usar uma constante NULL.
Deixe-me contar-lhe um segredo, já está implementado. Você precisa clicar sobre a roda do mouse e haverá uma mira.
Você pode fazer isso há muito tempo. Do navegador você arrasta o indicador para a janela com o indicador já anexado.
IMHO, não é a coisa mais necessária.
Você tem um navegador, você tem favoritos, você tem modelos, você tem perfis. Tudo pode ser montado. Leia Ajuda para o terminal, você descobrirá muita coisa!
As enumerações são usadas para tornar o código mais legível, para remover constantes e substituí-las por entidades conhecidas pelo homem.
Por exemplo, os valores da enumeração ENUM_DAY_OF_WEEK podem ser usados para comparação com o valor dia_da_semana da estrutura MqlDateTime. Isto é, você pode escrevê-lo assim
Ou você pode escrevê-lo de forma diferente:
SUNDAY é uma constante nomeada do tipo int com valor 0.
Legal! Obrigado pelo navegador! Não prestou muita atenção a isso. Normalmente eu o desligo, para não ocupar muito espaço. A ajuda, mesmo que seja apenas um vislumbre, eu a li. Ele não me diz nada sobre arrastar um indireto na janela dos gráficos e um sobre o outro. Embora, eu pudesse ter adivinhado e tentado....))))
Obrigado por explicar a natureza das enumerações! Eu os li muito rapidamente, o MQL é derivado principalmente do C++, e há muitos documentos de doca para ele. Mas muitos erros de impressão na Ajuda e artigos incompletos não são bons.
Resultados: a ajuda escrita correta pode ajudar a evitar muitas perguntas estúpidas de manequins no fórum!
No que diz respeito ao NULL, é zero - é muito usado. Mas os valores máximos das variáveis são muito raros, quase nunca. Por exemplo, uma variável armazena três estados após a análise dos indicadores: COMPRAR, VENDER ou NULL. Se utilizarmos constantes POSITION_TYPE_BUY, POSITION_TYPE_SELL, uma delas é zero. Tenho certeza que EMPTY_VALUE será mais popular do que NULL se você generalizar a todos os tipos).
Há outra aplicação infinitamente útil. Por exemplo:
E o usuário recebe uma lista suspensa com uma escolha de 4 itens do que você escreveu lá nos comentários - "Comprar somente", "Vender somente", etc. Muito útil para listar um conjunto de indicadores, prazos, um conjunto de condições, etc. na janela de configurações do usuário
A parte NULL é zero, e é usada com freqüência. Por exemplo, a variável armazena três estados após a análise dos indicadores: COMPRAR, VENDER ou NULL. Se usarmos constantes POSITION_TYPE_BUY, POSITION_TYPE_SELL, uma delas é NULL.
Não há problema, você pode fazer isso dessa maneira:
E colocá-lo onde você quiser.
Não há problema, você pode fazer isso dessa maneira:
E coloque-a onde você quiser.
Tudo isso é claro. Não é isso que eu quero dizer.
Então explique o que você quer dizer? Uma única constante para todos os tipos de dados pré-definidos? É improvável que tal coisa venha a ser implementada.
Infelizmente, somente programadores experientes entendem a utilidade e a importância de tal aviso.
Bem, recomendo a todos os outros que se alegrem com este nível de ajuda do compilador e corrijam seus próprios erros. Estes são lugares reais de erros potenciais e é exatamente para os desenvolvedores novatos que é extremamente importante aprender.
O tema dos "métodos puramente virtuais" já foi levantado no fórum alguns anos atrás.
Isto é, no conceito C++, métodos virtuais sem corpo, que devem ser anulados nos descendentes:
Além disso, uma classe contendo tais métodos torna-se automaticamente abstrata. O compilador também rastreia isso. (Bem, é apenas para manter as normas, embora você possa esconder o construtor em um escopo protegido).
Atualmente nos faltam muitos comportamentos de "métodos virtuais puros". Sem esta funcionalidade, você não pode preparar adequadamente uma biblioteca ou estrutura para terceirizá-la: você cria sua própria classe infantil (que não é para nada, mas está embutida como uma engrenagem em outras classes) e é gentil o suficiente para implementar toda a interface. Agora, você herda, não põe em prática um método, o compilador o engole, nada funciona. Escavando através do código fonte da classe mãe?
O conceito de interface é um dos fundamentos do OOP. Portanto, eu realmente gostaria de ver a implementação de tal coisa em 5, e não na MQL6
A propósito, na documentação sobre funções virtuais, há um erro
Exemplo:
A função virtualFunc1 não tem corpo executável (e nem sequer retorna um valor), mas se compila sem erros.
O tema dos "métodos puramente virtuais" já foi levantado no fórum alguns anos atrás.
Isto é, no conceito C++, métodos virtuais sem corpo, que devem ser anulados nos descendentes:
Além disso, uma classe contendo tais métodos torna-se automaticamente abstrata. O compilador também rastreia isso. (Bem, é apenas para manter as normas, embora você possa esconder o construtor em um escopo protegido).
Atualmente nos faltam muitos comportamentos de "métodos virtuais puros". Sem esta funcionalidade, você não pode preparar adequadamente uma biblioteca ou estrutura para terceirizá-la: você cria sua própria classe infantil (que não é para nada, mas está embutida como uma engrenagem em outras classes) e é gentil o suficiente para implementar toda a interface. Agora, você herda, não põe em prática um método, o compilador o engole, nada funciona. Escavando através do código fonte da classe mãe?
O conceito de interface é um dos fundamentos do OOP. Portanto, eu realmente gostaria de ver a implementação de tal coisa em 5, e não na MQL6
A propósito, na documentação sobre funções virtuais, há um erro
Exemplo:
A função virtualFunc1 não tem corpo executável (e nem sequer retorna um valor), mas se compila sem erros.
1. Funções virtuais puras serão adicionadas em breve
2) Onde em seu exemplo está a chamada Func1? Nenhuma chamada - nenhum controle corporal.
1. Funções virtuais puras serão adicionadas em breve
2) Onde está a chamada Func1 em seu exemplo? Nenhuma chamada - também nenhum controle corporal.
VS 2015 disse o seguinte
Severidade Código Descrição Projeto Arquivo Linha Estado de Supressão
Erro LNK2001 símbolo externo não resolvido "public: virtual int __thiscall Base::Func1(void)" (?Func1@Base@UAEHXZ) TestCPPCode C:\MyP\AvForex\trunk\TestCPPCode.obj 1
Erro LNK1120 1 externos não resolvidos TestCPPCode C:\MyP\AvForexTrunk\MQL4FilesForFormatting2015\Debug\TestCPPCode.exe 1
VS 2015 disse o seguinte
Severidade Código Descrição Projeto Arquivo Linha Estado de Supressão
Erro LNK2001 símbolo externo não resolvido "public: virtual int __thiscall Base::Func1(void)" (?Func1@Base@UAEHXZ) TestCPPCode C:\MyP\AvForex\trunk\TestCPPCode.obj 1
Erro LNK1120 1 externos não resolvidos TestCPPCode C:\MyP\AvForexTrunk\MQL4FilesForFormatting2015\Debug\TestCPPCode.exe 1