C/Visual C - Sibrecarga operador unario

 
Vista:

Sibrecarga operador unario

Publicado por Franco Cedillo (36 intervenciones) el 16/07/2005 19:54:25
Hola,

En el código que incluyo a continuación se me advertía que no había implementado la operación "operator++" postfija. Lo hice.. aquí está.

#include <iostream.h>
#include <stdio.h>
#include <conio.h>

class opera
{
int x,y;
public:
opera(){x=0; y=0;}
opera(int i, int j){x=i; y=j;}
void obtenxy(int &i, int &j){i=x; j=y;}
opera operator++();
};

opera opera::operator++()
{
x++;
y++;
}

void main()
{
opera objeto(10,7);
int x,y;
objeto++;
objeto.obtenxy(x,y);
cout<<"Valor de x: "<<x<<"\n";
cout<<"Valor de y: "<<y<<"\n";
getch();
}

¿Por qué sigue apareciendo que no está declarado el operado unario "operator++"?
Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sibrecarga operador unario

Publicado por BluSky (10 intervenciones) el 18/07/2005 13:02:08
Si no recuerdo mal el operator ++ (y --) posfija llevan, para diferenciarlos de la prefija, un parámetro de tipo Int. Es decir el prototipo en la clase sería
opera operator++(int);
aunque luego, a la hora de implementar la sobrecarga no hagas uso de él.
Espero q sea eso
Sebas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar