Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Sobrecarga de preincremento y postincremento

Estas en el tema de Sobrecarga de preincremento y postincremento en el foro de C/C++ en Foros del Web. Hola! estaba sobrecargando este operador de esas dos formas para que hiciera cosas diferentes. Al final lo hice declarando estas dos funciones: friend MATRIZ& operator++ ...
  #1 (permalink)  
Antiguo 08/08/2011, 06:54
 
Fecha de Ingreso: marzo-2011
Mensajes: 94
Antigüedad: 13 años, 1 mes
Puntos: 3
Sobrecarga de preincremento y postincremento

Hola! estaba sobrecargando este operador de esas dos formas para que hiciera cosas diferentes. Al final lo hice declarando estas dos funciones:

friend MATRIZ& operator++ ( MATRIZ &a );
MATRIZ operator++ ( int );

No entiendo muy bien porque hay que añadir ese int. Antes lo tenía hecho sin él y me decía que era ambiguas las declaraciones. No entiendo muy bien eso... Si hago a++ se ejecuta a.operator++(), cuyo prototipo es: MATRIZ operator++ ( ). Si hago ++a se ejecuta operator++ ( MATRIZ &a ) cuyo prototipo es: MATRIZ& operator++ ( MATRIZ &a ). Qué hay de ambiguo?

Un saludo!
  #2 (permalink)  
Antiguo 08/08/2011, 09:40
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Sobrecarga de preincremento y postincremento

El pre y post operador de incrementos tienen significados distintos, y cuando se sobrecargan, se hace sobrecargando 2 funciones amigas distintas o el operador++ 2 veces dentro de la clase.

Se diferencian uno de otro (en la firma) en que el operador postfijo tiene un parametro dummy de tipo int.
Se diferencian en la implementacion, o deberian diferenciarse en que uno (el prefijo) devuelve una referencia al objeto, mientras que el operador postfijo devuelve una copia de una "version" anterior del objeto.
  #3 (permalink)  
Antiguo 08/08/2011, 09:52
 
Fecha de Ingreso: marzo-2011
Mensajes: 94
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: Sobrecarga de preincremento y postincremento

Si, pero no entiendo muy bien por qué el parámetro los hace diferentes... además qué es un parámetro dummy?? jaja

un saludo! y perdona la ignorancia...
  #4 (permalink)  
Antiguo 08/08/2011, 10:04
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Sobrecarga de preincremento y postincremento

Las operaciones son diferentes, si quieres recargarlas son 2 funciones amigas o metodos distintos. Se diferencian, en la implementacion, con ese parametro (dummy) que solo sirve para (que el compilador pueda) diferenciarlas, pero no se usa para nada mas.

Etiquetas: funcion, sobrecarga
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:31.