frage zu klassen



  • ich habe eigentlich eine ganz einfache frage bezüglich klassen.
    ich verstehe nicht ganz den sinn und zweck dieses beispiels. die klasse soll eine rationale zahl beschreiben, also zähler und nenner, was soll dann eigentlich das

    rational()
    

    (Guck2). und damit verbunden die inlinefunktion bei (guck 3)
    außerdem weiß ich was ich mit dem typumwandlungskonstruktor anfangen soll

    rational(long);
    

    laut inlinefunktion steht er für den fall, dass der nenner gleich 1 ist, aber was soll das elleinstehende

    long
    

    und sind die private variablen wirklich notwendig?

    class rational {  //Guck1
       public:
         rational();       //Guck2
         rational(long z, long n);   // allgemeiner Konstruktor
         rational(long);             // Typumwandlungskonstruktor
    
         // Abfragen
         long Zaehler() const;
         long Nenner()  const;
    
         // arithmetische Methoden
         // (werden später durch überladene Operatoren ergänzt)
         void add(const rational& r);
         void sub(const rational& r);
         void mult(const rational& r);
         void div(const rational& r);
    
         // weitere Methoden
         void definiere(long zaehler, long nenner);
         void eingabe();
         void ausgabe() const;
         void kehrwert();
         void kuerzen();
    
       private:
         long zaehler, nenner;
    };
    
    // inline Methoden
    inline rational::rational()  //guck 3
    : zaehler(1), nenner(1)   {}
    
    inline rational::rational(long Z, long N)
    : zaehler(Z), nenner(N)   {}
    
    inline rational::rational(long ganzeZahl)
    : zaehler(ganzeZahl), nenner(1)   {}
    
    inline long rational::Zaehler() const {return zaehler;}
    inline long rational::Nenner()  const {return nenner;}
    
    // globale Funktionen
    rational add(const rational& a, const rational& b);
    rational sub(const rational& a, const rational& b);
    rational mult(const rational& a, const rational& b);
    rational div(const rational& z, const rational& n);
    


  • konstruktor schrieb:

    was soll dann eigentlich das

    rational()
    

    (Guck2). und damit verbunden die inlinefunktion bei (guck 3)

    Das ist einfach der default-Konstruktor. Er initialisiert zaehler und nenner mit 1.

    außerdem weiß ich was ich mit dem typumwandlungskonstruktor anfangen soll

    rational(long);
    

    laut inlinefunktion steht er für den fall, dass der nenner gleich 1 ist, aber was soll das elleinstehende

    long
    

    naja, der Konstruktor nimmt eben ein long als Parameter.

    und sind die private variablen wirklich notwendig?

    Ja. Variablen sollten immer privat sein.
    http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=InstPriv#Answ



  • konstruktor schrieb:

    rational add(const rational& a, const rational& b);
    rational sub(const rational& a, const rational& b);
    rational mult(const rational& a, const rational& b);
    rational div(const rational& z, const rational& n);
    

    Jemand sollte mal eine Sprache mit Operatoren Ueberladung erfinden...


Anmelden zum Antworten