Erros, bugs, perguntas - página 1357
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
A propósito, não entendo este código, em que lugar será chamado operator===? É apenas uma comparação de dois longos, é tudo
...
IsEqualPointer pode ser ou um padrão ou uma função geral semelhante a ::GetPointer
Não o compreendo de todo, poderia explicar em linguagem humana o que está a tentar fazer? O código dado tem erros (operador== não tem argumento, nem valor de retorno), é difícil de compreender algo de tudo isto.
Deixe-me dizer-lhe desde já que o problema da comparação/atribuição de apontadores nunca existiu antes, GetPointer(a)==GetPointer(b) é suficiente para isso. Assim, a tarefa diz respeito apenas à comparação/atribuição dos próprios objectos, ou seja, é garantido que estas operações serão realizadas, independentemente de estes objectos serem representados por apontadores ou referências
O código que deu tem erros (operator=== não tem qualquer argumento ou valor de retorno), é difícil de entender alguma coisa de tudo isto.
GetPointer(a)==GetPointer(b) irá causar a.operator==( b )
A propósito, que tal introduzir * e & operadores em MQL para permitir o acesso explícito a um objecto no primeiro caso, e levar um ponteiro de objecto no segundo (em vez do pesado GetPointer). O asterisco é uma obrigação, e não há nada na língua que o substitua.Sem ele, é impossível controlar situações como a descrita por A100 acima, quando em vez dos próprios objectos são executadas algumas acções de ponteiro. Pessoalmente, este é um problema constante, tenho de estar constantemente alerta ou especificar A.operator=(B), A.operator!=(B) em todo o lado, ou seja, perde-se a brevidade, e os operadores de sobrecarga tornam-se de facto inúteis.
Já levantei este problema uma vez, mas o assunto ficou parado. Vamos finalmente terminar esta questão.
Concordo com isso, levantarei definitivamente a questão e discuti-la-emos.
Porque seria?
...
Se equiparar operator== com operator<, o resultado também será o mesmo.
Nem sequer verificou o que sugeriu! Tal como no caso anterior, quando havia erros óbvios no código, ou seja, nem sequer tentou compilá-lo. Desenhou algo numa manivela, alguns pensamentos seus, como "coma-o enquanto eu sou gentil, sem piedade"... Não vamos fazer este tipo de disparate.
Eu próprio comparo constantemente indicadores e operadores de sobrecarga, e nunca aconteceu aquilo com que sonha agora. E agora que verificou o seu código, nenhum milagre aconteceu, operator=== não é executado como deveria ser.
Assim, agora que verificou o seu código, não aconteceram milagres, o operador=== não começa como deveria.
O objectivo da frase é precisamente o de a desencadear.
Para que serve isso? Está de cabeça para baixo.
Faz mais sentido o contrário: < e > deve causar a comparação de apontadores.