000
07.11.2003, 19:29 Uhr
~Problemkind
Gast
|
Also ich hab ein problem, ich hab morgen an der schule prg test und ich muss operator overloading können....alles schön und gut, also denk ich mir ich überlade mal das +! Hm...leider funktioniert es nicht ganz wie ich will...hier mal die codierung:
implementierung: (steht aber noch viel mehr, nur das wird das einzig wichtige sein)
C++: |
Vektor &Vektor::operator+(Vektor erster) { x=x+erster.getX(); y=y+erster.getY(); return *this; }
//.h:
#ifndef VEKTOREN_H #define VEKTOREN_H #include<iostream> using namespace std; class Vektor{ public: Vektor(int=0,int=0); ~Vektor(); int getX() const; int getY() const; int getRadius() const; int getWinkel() const; Vektor &operator+(Vektor); private: int x,y; }; ostream &operator<<(ostream &,const Vektor &); #endif VEKTOREN_H
//main:
#include "vektoren.h" int main() { Vektor eins(5,1); Vektor zwei(1,2); Vektor drei; drei=eins+zwei+eins; cout<<" eins: "<<eins<<endl; cout<<"+ zwei: "<<zwei<<endl; cout<<"+ eins: "<<eins<<endl; cout<<"= drei: "<<drei<<endl; return 0; }
|
das problem ist das er eins auch verändert, bei drei=eins+zwei+eins; er setzt eins übrigens auf(11,4), sollte aber (5,1) bleiben! wenn ich es so umschreiben würd das er es nicht mehr verändert würde es nur noch mit 2 objekten gehen...zb drei=eins+zwei; Bitte helft mir!
--edit: Pablo. [ cpp ] tagse gesetzt -- Dieser Post wurde am 07.11.2003 um 19:37 Uhr von Pablo Yanez Trujillo editiert. |