Si sobrecarga -como operador-(), se debe usar a la izquierda del objeto, sin embargo, la sobrecarga() como operador()() se usa a la derecha del objeto. ¿Cómo sabemos qué operador se debe usar a la izquierda y cuáles se usarán a la derecha?Sobrecarga del operador en C++
Respuesta
Mire el operator precedence chart. Esto le indicará la dirección que el operador asocia (vincula). Tenga en cuenta que algunos operadores tienen múltiples formas con diferentes significados, como el binario y el unitario -
. En tales casos, es posible tener varias sobrecargas, por ejemplo .:
T operator-()
y:
T operator-(const T &o)
El compilador elige el más adecuado basado en la interpretación sintáctica del operador.
Vea también este útil set of guidelines.
¿'operador-()' realmente no devuelve nada? ¿No debería devolver un valor del tipo apropiado que sea la negación del valor o la diferencia entre los valores? –
Gracias por captar eso, Jonathan. Corregido ahora. –
La mayoría de los operadores unarios solo se pueden ubicar en un lado específico de su operando. Para los dos casos especiales, ++
y --
, consulte this FAQ.
- 1. sobrecarga del operador C++
- 2. Sobrecarga del operador + en C++
- 3. C++ sobrecarga del operador estático
- 4. Operador = sobrecarga en C++
- 5. Sobrecarga y sobrecarga del operador en Java
- 6. C# en el operador-sobrecarga
- 7. C# Clase abstracta Sobrecarga del operador
- 8. ¿Sobrecarga del operador?
- 9. Sobrecarga del operador
- 10. C++ operador == sobrecarga
- 11. Sobrecarga del operador en Clojure
- 12. Sobrecarga del operador en .NET
- 13. Sobrecarga del operador en Java
- 14. Sobrecarga del operador de flujo
- 15. C++ plantilla amigo operador sobrecarga
- 16. Scala: método \ sobrecarga del operador
- 17. C++ sobrecarga operador de asignación
- 18. operador con plantilla() sobrecarga C++
- 19. valor de retorno de la sobrecarga del operador en C++
- 20. Sobrecarga del operador de direccionamiento indirecto en C++
- 21. Espacios de nombres y sobrecarga del operador en C++
- 22. Operador de sobrecarga en C++ y desreferencia
- 23. Sobrecarga elegante del operador en D
- 24. Sobrecarga del operador en plantillas de clase
- 25. Operador de asignación de sobrecarga en C++
- 26. Sobrecarga global operador nuevo/eliminar en C++
- 27. operador de asignación sobrecarga en C#
- 28. sobrecarga de operador -> en C++
- 29. operador de asignación sobrecarga en C++
- 30. operador [] = ¿sobrecarga?
Esto tiene una respuesta simple, pero desde la perspectiva de alguien nuevo en la programación, me imagino que esto podría ser una fuente de mucho dolor de cabeza. +1 –