Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Operatoren + und - überladen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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:

C++:
((a)+(-b))



Aber folgendes geht nicht:


C++:
(a-b)



Wo liegt das Problem?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.01.2015, 12:30 Uhr
TOSHMAX



Hallo,

der point Parameter in operator- ist der zweite Operand der Subtraktion (also b in deinen Beispielen). Wenn du dir jetzt anschaust, welche Rechnung du in der Funktion tatsächlich ausführst, sollte dir klar sein was schief läuft.

In operator+ machst du es übrigens richtig, allerdings verwirrt auch hier der Parameter Name.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: