Sobrecarga de operadores
-1-
Sobrecarga de operadores en C++
Nociones generales sobre la sobrecarga de operadores ........................................................................................1 Reglas para la sobrecarga de operadores..............................................................................................................2 Cómo sobrecargar un operador .............................................................................................................................3 Sobrecarga de operadores unarios.........................................................................................................................5 Sobrecarga de operadoresbinarios........................................................................................................................9 Sobrecarga de los operadores de flujo .................................................................................................................13 Sobrecarga del flujo de salida ...........................................................................................................................13 Sobrecarga delflujo de entrada ........................................................................................................................14 Operadores de conversión ....................................................................................................................................15 Conversión entre tipos predefinidos..................................................................................................................16 Conversión entre objetos y tipos predefinidos...................................................................................................16 Conversiones mediante un constructor..........................................................................................................16 Funciones de conversión...............................................................................................................................18 Ambigüedades entre funciones de conversión y constructores de conversión ..............................................21 Ambigüedades entre conversiones.................................................................................................................23 Conversiones utilizadas en elpaso de argumentos a funciones ....................................................................24 Ejercicios resueltos ...............................................................................................................................................25 Ejercicios propuestos............................................................................................................................................31
Nociones generales sobre la sobrecarga de operadores
Sobrecargar un operador significa darle un significado adicional, para lo cual hay que definir una función que pueda ser llamada por el operador cuando este se utilice con los tipos de datos adecuados. Un operador puede tener múltiples sobrecargas y cada una de ellas debe contar con una función diferente, quepor supuesto deben tener argumentos distintos. Sobrecargar operadores hace que el código fuente sea mucho más legible. Por ejemplo si se necesita realizar una comparación entre dos instancias de una misma clase para saber cual es menor se tendría que utilizar una función definida a tal efecto, de una forma parecida a: if ( MenorQue (Obj1, Obj2) ) { // Sentencias } Si se sobrecarga el operador < sepodría haber escrito el código de la siguiente forma: if ( Obj1 < Obj2 ) { // Sentencias } La segunda forma es mucho más intuitiva y conveniente que la primera. Pero esta propiedad de sobrecarga de operadores se tiene que usar con sumo cuidado, o de lo contrario puede dar lugar a graves problemas en el programa que se esté desarrollando. La mayor utilidad de la sobrecarga de operadores es...
Regístrate para leer el documento completo.