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 dasrational()
(Guck2). und damit verbunden die inlinefunktion bei (guck 3)
außerdem weiß ich was ich mit dem typumwandlungskonstruktor anfangen sollrational(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...