Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Bruchrechner

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ]
010
15.10.2004, 15:58 Uhr
rejo




Zitat von Windalf:

damit der quellcode unnötig länger wird



ich bin halt noch nicht so ein super coder wie ihr! ^^
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
15.10.2004, 16:00 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@rejo
damit war (un)wissender gemeint nicht du... aber das weiss er ja auch
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
15.10.2004, 16:42 Uhr
(un)wissender
Niveauwart


Aber immer, habe nur auf sowas gewartet.

Nimm vielleicht diese Klasse, ist auch ordentlich const drin.

C++:
#include <iostream>

class Bruch
{
    private:
    int Zaehler;
    unsigned int Nenner;
    
   void Kuerzen;
    
    public:
    Bruch();
    Bruch(int, unsigned  nenner = 1);
    Bruch(int,unsigned);
    //Bruch(const Bruch&);
    //~Bruch();
    //int Bruchsetzen();
    friend std::ostream & operator<<(std::ostream&  out, const Bruch &bruch) //Ausgabe
    //void Bruchausgabe();
    //int WerteSetzen(int, unsigned int);
    void setzeZaehler(int);
    void setzeNenner(unsigned);
    int leseZaehler() const;
    unsigned leseNenner() const;
    double toDouble() const ;
    const Bruch operator+(const Bruch &zwei) const ;
    Bruch& operator+=(const Bruch &zwei);
    const Bruch operator-(const Bruch &zwei) const ;
    Bruch& operator-=(const Bruch &zwei);
    const Bruch operator*(const Bruch &zwei) const ;
    Bruch& operator*=(const Bruch &zwei);
    const Bruch operator/(const Bruch &zwei) const ;
    Bruch& operator/=(const Bruch &zwei);
};


--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
15.10.2004, 17:58 Uhr
~Mr. T
Gast



C++:
class CBruch
{
public:

CBruch();//Methoden zum Einlesen, Kürzen etc.

protected:

int Zaehler;
int Nenner;

}

CBruch::CBruch()
{
Zaehler = ...;
Nenner = ...;
}


Mehr brauchst Du da nicht. Der Konstruktor sollte den Nenner standardmäßig mir einer 1 belegen, da Division durch Null und sowieso...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
15.10.2004, 18:34 Uhr
rejo



Thnx
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
15.10.2004, 19:19 Uhr
(un)wissender
Niveauwart


Vorsicht!
Das was Mr T. geschreiben hat ist falsch!
Attribute protected zu machen, ohne den Destruktor als virtual zu deklarieren, kann durch Klassen, die von Bruch abgeleitet werden, zu Speicherlecks führen.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
15.10.2004, 20:24 Uhr
ao

(Operator)



Zitat von (un)wissender:
Aber immer, habe nur auf sowas gewartet.

Nimm vielleicht diese Klasse, ist auch ordentlich const drin.

C++:
#include <iostream>

class Bruch
{
    private:
    int Zaehler;
    unsigned int Nenner;
    
   void Kuerzen;
    
    public:
    Bruch();
    Bruch(int, unsigned  nenner = 1);
    Bruch(int,unsigned);
    //Bruch(const Bruch&);
    //~Bruch();
    //int Bruchsetzen();
    friend std::ostream & operator<<(std::ostream&  out, const Bruch &bruch) //Ausgabe
    //void Bruchausgabe();
    //int WerteSetzen(int, unsigned int);
    void setzeZaehler(int);
    void setzeNenner(unsigned);
    int leseZaehler() const;
    unsigned leseNenner() const;
    double toDouble() const ;
    const Bruch operator+(const Bruch &zwei) const ;
    Bruch& operator+=(const Bruch &zwei);
    const Bruch operator-(const Bruch &zwei) const ;
    Bruch& operator-=(const Bruch &zwei);
    const Bruch operator*(const Bruch &zwei) const ;
    Bruch& operator*=(const Bruch &zwei);
    const Bruch operator/(const Bruch &zwei) const ;
    Bruch& operator/=(const Bruch &zwei);
};




Fragen:
1. Warum sind der Copy-Konstruktor und der Destruktor auskommentiert? operator= (const Bruch & fehlt auch noch.
2. Was soll Bruchsetzen () tun?
3. Der Konstruktoren Bruch (int, unsigned) und Bruch (int, unsigned nenner = 1) sind mehrdeutig
4. Was spricht dagegen, die Funktion toDouble zu ersetzen durch operator double () const?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
15.10.2004, 21:30 Uhr
(un)wissender
Niveauwart


1.
tut nicht not, da pod (plain old data)

2.
Ist von ihm übernommen, brauchte er wohl, könnte aber Defaultwerte setzen

3. Habe ich übersehen, muss weg

4.
Gegenfrage: warum hat sich das Standardisierungkomitee wohl gegen einen operator char*() bei std::string entschieden?
(-> Undurchsichtige Typumwandlungen können für Ärger sorgen)
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
18.10.2004, 08:58 Uhr
Mr. T




Zitat von (un)wissender:
Vorsicht!
Das was Mr T. geschreiben hat ist falsch!
Attribute protected zu machen, ohne den Destruktor als virtual zu deklarieren, kann durch Klassen, die von Bruch abgeleitet werden, zu Speicherlecks führen.


Als Anfänger (wie ich oder wie so mancher) ist mal eine Klasse zum Bruchrechnen zu entwerfen, ist Arbeit genug. Ein Schritt nach dem anderen (Ich habe doch den Destruktor garnicht ausgeschlossen).

Greetings
--
So ist das!

Dieser Post wurde am 18.10.2004 um 09:00 Uhr von Mr. T editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
18.10.2004, 10:52 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat von (un)wissender:
Aber immer, habe nur auf sowas gewartet.

Nimm vielleicht diese Klasse, ist auch ordentlich const drin.

C++:
#include <iostream>

class Bruch
{
[...]
    Bruch(int, unsigned  nenner = 1);
    Bruch(int,unsigned);
[...]
};




Tststs... Und das geht bei Dir durch den Compiler?!?
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: