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
Ainda não entendi o que são ponteiros e referências na MQL5 e agora na MQL4. Qual é a diferença entre passar por referência e ponteiro, exceto pelo código extra? Existe uma diferença no C++, mas qual é a diferença aqui? Se não for difícil escrever mais detalhadamente.
A passagem por referência exige que o objeto passado por referência seja inicializado. A passagem por ponteiro não tem essa restrição:
Ao chamar a função TestShapeRef, o código falhará porque a forma não está inicializada. Por outro lado, dentro da função TestShapePointer, são necessárias verificações constantes se o objeto passado está inicializado ou não. Portanto, siga a regra do imprimário:
Há mais uma nuance sutil que você deve ter em mente. Considere o exemplo anterior:
Esse programa funcionará corretamente? Não, ele terminará com o erro "acesso a ponteiro inválido" na linha printf(shape.name); //ERROR (!?) , apesar do fato de que parece que temos a garantia de criar um objeto na função TestShapePointer. A questão é que, de fato, uma referência NULL foi passada em vez de shape. Ou seja, a forma dentro da função e a forma passada são objetos diferentes! Assim, depois de sair da função, shape ainda é igual a NULL e o ponteiro de shape dentro da função é perdido (limpo na pilha). Portanto.É possível criar uma matriz com objetos de tipos diferentes?
Vejamos este exemplo:
//---
Como obter acesso a métodos de classes herdadas?
Como acessar métodos de classes herdadas?
Você já tentou lançar um tipo de alvo?
Não. Esta é a primeira vez que ouço falar disso. Onde posso ler sobre isso?
A conversão de tipo usual, aqui está um exemplo:
Você já tentou fazer o casting para o tipo de destino?
Droga, e você está falando sobre segurança de linguagem depois disso?
Não seria melhor usar o polimorfismo?
É mais ou menos assim: