Operadores
La sobrecarga de operadores se implementa mediante traits en std::ops
:
Speaker Notes
This slide should take about 5 minutes.
Cuestiones de debate:
- ¿En qué situaciones sería útil implementar
Add
para&Point
?- Respuesta:
Add:add
consume aself
. Si el tipoT
para el que se sobrecarga el operador no esCopy
, deberías plantearte también sobrecargar el operador para&T
. Así se evita la clonación innecesaria en el sitio de la llamada.
- Respuesta:
- ¿Por qué
Output
es un tipo asociado? ¿Se podría convertir en un parámetro tipo del método?- Respuesta corta: el llamador controla los parámetros tipo de la función, pero los tipos asociados (como
Output
) son controlados por el implementador de un trait.
- Respuesta corta: el llamador controla los parámetros tipo de la función, pero los tipos asociados (como
- Se podría implementar
Add
para dos tipos distintos; por ejemplo,impl Add<(i32, i32)> for Point
añadiría una tupla a unPoint
.