[c++] Overloade degli operatori
Ciao a tutti,
nel codice qui sotto ho una classe Punto formata da due interi x e y.
Ho ridefinito gli operatori << + e ++
Ma ++ è come se non lo avessi ridefinito..perchè?
nel codice qui sotto ho una classe Punto formata da due interi x e y.
Ho ridefinito gli operatori << + e ++
Ma ++ è come se non lo avessi ridefinito..perchè?
#include <cstdlib>
#include <iostream>
using namespace std;
class Punto{
public:
int x;
int y;
public:
Punto(int _x, int _y);
friend ostream& operator <<(ostream& os, Punto p);
Punto operator+ (const Punto& p1);
Punto operator++();
};
Punto::Punto(int _x, int _y){
x=_x;
y=_y;
}
ostream& operator <<(ostream& os, Punto p){
return os<<"{"<<p.x<<"-"<<p.y<<"}";
} ;
Punto Punto:: operator+ (const Punto& p1){
Punto p(0,0);
p.x=p1.x+x;
p.y= y+p1.y;
return p;
}
Punto Punto:: operator++(){
x++;
y++;
return *this;
}
int main(int argc, char *argv[])
{
Punto p1(2,2);
Punto p2(2,3);
Punto p3(0,0);
p3=p1+p2;
cout<<p3;
p3++;
system("PAUSE");
return EXIT_SUCCESS;
}
Risposte
Perché non lo hai fatto. Hai definito l'operatore ++ prefisso e non suffisso. http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B
Grazie!!