[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

