Überladen von operatoren
-
Hi,
Ich hab eine Klasse Bruch. und ich würde jetzt gerne der selbstgeschriebenen klasse einen wert übergeben.
also prinzip so
Bruch test; test=3/4;wie kann ich das machen?
meine klasse ist folgendermaßen aufgebaut:
class Bruch { private: int zaehler; int nenner; public: Bruch(); Bruch(int z,int n); Bruch operator * (Bruch b); Bruch operator * (int b); Bruch operator *= (Bruch b); Bruch operator + (Bruch b); int Getzaehler(void); int Getnenner(void); void Setzaehler(int z); void Setnenner(int n); };
-
test = Bruch(3,4);
-
Direkt so wie angegeben kannst du es nicht machen - die Division
3/4wird IMMER als Ganzzahl-Division durchgeführt und du kannst bestenfalls das Ergebnis dieser Division über einen op= oder Ctor entgegennehmen. Aber du kannst mit der bisherigen Definitiontest = Bruch(3,4);schreiben, um den Bruch "3/4" zu erzeugen.Ein anderer Ansatz wäre
test=Bruch(3)/Bruch(4);(dafür mußt du noch den operator/ definieren analog zu deinem operator*PS: op*= sollte übrigens eine Referenz auf *this zurückgeben
