Ich komme nicht weiter



  • Ich soll eine Klasse "Rationale_Zahl" erstellen

    Das ist meine Header:

    #ifndef _Rationale_Zahl_
    #define _Rationale_Zahl_
    #include <iostream>

    #pragma warning(disable:4996)

    class Rationale_Zahl{

    private:
    int Zaehler;
    int Nenner;

    public:
    /*Rationale_Zahl();*/
    Rationale_Zahl(int z=1, int n=1);
    Rationale_Zahl(const Rationale_Zahl& y);

    bool set(int m_Zaehler, int m_Nenner);
    int getZaehler() const;
    int getNenner() const;
    /~Rationale_Zahl();/

    Rationale_Zahl operator + (const Rationale_Zahl&) const;
    Rationale_Zahl operator - (const Rationale_Zahl&) const;
    Rationale_Zahl operator * (const Rationale_Zahl&) const;
    Rationale_Zahl operator / (const Rationale_Zahl&) const;

    Rationale_Zahl Ausgabe();
    };
    #endif

    Das meine "Funktionen.cpp":

    #include "rationale_zahl.h"

    Rationale_Zahl Rationale_Zahl::operator + (const Rationale_Zahl& a) const {
    Rationale_Zahl e;
    e.Nenner = Nenner * a.Nenner;
    e.Zaehler = Zaehler + a.Zaehler;
    return e;
    }
    Rationale_Zahl Rationale_Zahl::operator - (const Rationale_Zahl& s) const {
    Rationale_Zahl e;
    e.Nenner = Nenner * s.Nenner;
    e.Zaehler = Zaehler - s.Zaehler;
    return e;
    }
    Rationale_Zahl Rationale_Zahl::operator * (const Rationale_Zahl& m) const {
    Rationale_Zahl e;
    e.Nenner = Nenner * m.Nenner;
    e.Zaehler = Zaehler * m.Zaehler;
    return e;

    }
    Rationale_Zahl Rationale_Zahl::operator / (const Rationale_Zahl& d) const {
    Rationale_Zahl e;
    e.Nenner = Nenner * d.Nenner;
    e.Zaehler = Zaehler * d.Zaehler;
    return e;
    }
    bool Rationale_Zahl::set(int m_Zaehler, int m_Nenner){

    if (m_Nenner==0) return false;

    Zaehler = m_Zaehler;
    Nenner = m_Nenner;
    return true;
    }

    int Rationale_Zahl::getZaehler() const{

    return Zaehler;
    }

    int Rationale_Zahl::getNenner() const{

    return Nenner;
    }

    Rationale_Zahl::Rationale_Zahl(const Rationale_Zahl & y){
    *this = y;
    }

    Rationale_Zahl::Rationale_Zahl(int z, int n){
    if (!set(z,n)) exit(7);
    }

    Rationale_Zahl Rationale_Zahl::Ausgabe(){
    Rationale_Zahl e;

    std::cout << "Summe der Addition: " << std::endl;
    std::cout << "Summe der Subtraktion: " << std::endl;
    std::cout << "Summe der Multiplikation: " << std::endl;
    std::cout << "Summe der Division: " << std::endl;

    return e;
    }

    /*Rationale_Zahl Rationale_Zahl::~Rationale_Zahl(){

    std::cout << "Destruktor läuft!!!" << std::endl;
    }*/

    Ich brauche noch eine Kürzen- und ein Erweiterungsfunktion
    und wollte fragen, ob mir einer dabei helfen könnte?



  • Wo ist die Frage?



  • Hallo, willkommen im Forum.
    Lies dir bitte mal den Link in meiner Signatur durch. Allgemein solltest du vor dem Posten grundlegende Dinge wie FAQs und mit wichtig markierte Threads durchlesen.
    Für dich interessant sind in dem Posting die Punkte "Schreib lesbar" (cpp-Tags), "Stell deine Fragen präzise" (du hast überhaupt keine richtige Frage gestellt, soweit ich das sehen kann) und "Reduziere Codebeispiele auf das Wesentliche" (du hast ziemlich viel Code gepostet - ist das wirklich alles relevant für dein Problem?).
    Du kannst dein erstes Posting am Besten editieren und in eine leserlichere Form bringen 🙂



  • zum erweitern benötigst du lediglich eine Funktion mit einem Wert zum erweitern.
    (einfache Multiplikation des Nenners und Zählers mit einem Faktor)

    zum Kürzen musst du einen gemeinsamen Teiler ermitteln.

    hier wurde schonmal in die Richtung was gemacht:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-257361.html

    aber selber machen ist ja bekanntlich besser als abschreiben.


Anmelden zum Antworten