000
16.01.2015, 15:21 Uhr
~dominik
Gast
|
Hi,
ich habe eine Klasse point, die z.B. für Vektoren in einem 2D-System stehen können. Ich möchte die Operatoren + und - so überladen, dass ich die Instanzen der Klasse point einfach addieren und subtrahieren kann, wie Vektoren. Hier die Klassendeklaration:
C++: |
class point{ private: short x; short y; public:
//...
point operator-(); point operator+(); point operator+(point); point operator-(point); };
|
Und hier die Operatoren:
C++: |
point point::operator-(){ return(point(-x,-y)); }
point point::operator+(){ return (*this); }
point point::operator+(point a){ return(point(x+a.x, y+a.y)); }
point point::operator-(point a){ return(a+(-(*this))); }
|
Addieren klappt prima, nur beim subtrahieren gibt's Probleme. Folgender Ausdruck liefert das richtige Ergebnis:
Aber folgendes geht nicht:
Wo liegt das Problem? |