Konvertierung Rational nach int
-
Heyho Leute,
ich hab ne Klasse Rational geschrieben, in der ich die üblichen Operatoren wie *,+ usw. überladen habe.
Möchte nun eine Konvertierung von Rational zu int implementieren.
Sprich habe sowas wie Rational r(15,7) und möchte nun sowas wie int i = static_cast<int>(r) machen.
Hatte mich schon einwenig umgeschaut aber nur was mittels boost gefunden.(Möcht ich nicht da für Klausur)
Nach was muss ich hier schauen? Hab schon überlegt = zu überladen oder irgendwas mit dem Copykonstruktor zu machen. Aber ob das zum gewünschten effekt führt?
Alternativ hab ich ne Elementfunktion implementiert die mir einfach das ganze als int zurükliefert. Nur weiß ich nicht, ob das für die Anforderungen ausreicht.
Abgesehen davon find ich die obere methode schöner, wenn das denn gehen sollte^^Vielen Dank im Voraus
Grüß QUaxel
-
-
Dü könntest den Operator () überladen
operator int() const { return zaehler / nenner; }und dann mit static_cast arbeiten
int value = static_cast<int>(Rational(15,7));
-
Besten Dank an euch.
Funktioniert so wie ich mir das vorgestellt habe!
-
Ich würde empfehlen die Konvertierung
explicitzu machen.
Ansonsten gibt es auch eine schöne, fertige rational Klasse in Boost.