Konstruktorliste
-
314159265358979 schrieb:
Wenn, dann mach doch gleich einen statischen Member:
static const Bruch NaN(0, 0);Quark, mal wieder, leider.
Dann zahlste ganz ohne Not im op== drauf.
-
???
-
314159265358979 schrieb:
Wenn, dann mach doch gleich einen statischen Member:
static const Bruch NaN(0, 0);Ich würde sowas gar nicht erst zulassen. Finde es sehr fragwürdig was der Threadsteller da macht wenn ich 0 als Nenner übergebe. An solchen Stellen sollte man nicht versuchen Logik-Fehler auszumerzen, sondern knallhart nen Fehler werfen.
-
314159265358979 schrieb:
Wenn, dann mach doch gleich einen statischen Member:
static const Bruch NaN(0, 0);und dann hat man was gekonnt?
op== kann man nicht nehmen, weil dort (außer bei sonderfällen) zaehler und nenner übereinstimmen müssen, NaN ists aber immer, wenn der nenner 0 ist.
-
Ich vesteh eure Einwände überhaupt nicht.
-
314159265358979 schrieb:
Ich vesteh eure Einwände überhaupt nicht.
dann zeig mal genau, was du mit dem statischen member vor hast.
-
Was soll ich denn groß damit vorhaben? Ist das nicht offensichtlich?
-
314159265358979 schrieb:
Was soll ich denn groß damit vorhaben? Ist das nicht offensichtlich?
entweder du hast nen denkfehler oder bisher hat einfach niemand erkannt, wie toll dein super vorschlag ist, weil es doch nicht so offensichtlich ist.
-
314159265358979 schrieb:
???
Der Bruch ist genau dann NaN, wenn sein Nenner 0 ist. Du zahlst im
operator==drauf, weil du nicht mehr einfach Nenner und Zähler auf Gleichheit prüfen kannst, sondern du ihn so oder ähnlich implementieren musst:bool operator== (Bruch lhs, Bruch rhs) { return lhs.nenner() == 0 && rhs.nenner() == 0 // beide NaN || lhs.nenner() == rhs.nenner() && lhs.zaehler() == rhs.zaehler(); }Davon abgesehen, dass zwei NaNs nie gleich sind...
-
Danke Leute!
Ihr habt mir doch einiges weitergeholfen! Das Problem was ich mit der Konstruktorliste hatte, hab ich soweit beseitigt.
Danke!