Errores, fallos, preguntas - página 1357
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Por cierto, no entiendo este código, ¿en qué lugar se llamará a operator==? Es sólo una comparación de dos longs, eso es todo
...
IsEqualPointer puede ser un patrón o una función general similar a ::GetPointer
No te entiendo nada, ¿podrías explicar en lenguaje humano lo que intentas hacer? El código dado tiene errores (operator== no tiene ni argumento, ni valor de retorno), es difícil entender algo de todo esto.
Permítanme decirles de entrada que el problema de comparar/asignar punteros no ha existido nunca, para ello basta con GetPointer(a)==GetPointer(b). Así pues, la tarea se refiere únicamente a la comparación/asignación de los propios objetos, es decir, se garantiza que estas operaciones se realicen, independientemente de que estos objetos estén representados por punteros o referencias
El código que has dado tiene errores (operator== no tiene argumento ni valor de retorno), es difícil entender nada de todo esto.
GetPointer(a)==GetPointer(b) hará que a.operator==( b )
Por cierto, qué tal si se introducen los operadores * y & en MQL para permitir el acceso explícito a un objeto en el primer caso, y tomar un puntero de objeto en el segundo (en lugar del engorroso GetPointer). El asterisco es imprescindible, y no hay nada en el lenguaje que lo sustituya.Sin ella, es imposible controlar situaciones como la descrita por A100 más arriba, cuando en lugar de los propios objetos se realizan acciones de puntero. Personalmente, esto es un problema constante, tengo que estar constantemente en alerta o especificar A.operator=(B), A.operator!=(B) en todas partes, es decir, se pierde la brevedad, y la sobrecarga de operadores en realidad carece de sentido.
Ya planteé este problema una vez, pero el tema se estancó. Terminemos de una vez este asunto.
Estoy de acuerdo con eso, ciertamente plantearé el tema y lo discutiremos.
¿Por qué?
...
Si se equipara operator== con operator<, el resultado también será el mismo.
Ni siquiera has comprobado lo que sugieres! Al igual que en el caso anterior, cuando había errores obvios en el código, es decir, ni siquiera intentaste compilarlo. Esbozaste algo en una manivela, algunos pensamientos tuyos, como "cómetelo mientras sea amable, sin piedad"... ¿Es eso cierto? No hagamos este tipo de tonterías.
Yo mismo comparo constantemente los punteros y los operadores de sobrecarga, y nunca ha ocurrido lo que sueñas ahora. Y ahora habiendo comprobado tu código, no ha ocurrido ningún milagro, el operador== no se ejecuta como debería.
Así que ahora habiendo revisado tu código, no ha ocurrido ningún milagro, el operador== no se inicia como debería.
El objetivo de la sentencia es precisamente que se active.
¿Para qué es eso? Está al revés.
Tiene más sentido al revés: < y > deberían provocar la comparación de punteros.