[c++] Overloade degli operatori

Oo.Stud.ssa.oO
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è?
#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
vict85
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

Oo.Stud.ssa.oO
:smt023 Grazie!! :wink:

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.