Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » ..ergänzen..

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 <
000
12.08.2002, 00:02 Uhr
uTaNG



Hallo, bin wieder da

möchte:
+ *= - operator Überladen
+ Methode MAX (liefert den grössern von 2 Brüchen zurück)
+ arbeiten mit dem THIS zeiger

Hat wer dazu paar vorschläge?



C++:
// PBruch.h
//-----------------
#ifndef __PBRUCH_H
#define __PBRUCH_H

class PBruch
{
  private:
    int zaehler,nenner;

  public:
    PBruch(int,int);
    void Print(void);
    PBruch operator*(const PBruch&);
};

#endif


// PBruch.cpp
//-----------------
#include "pbruch.h"
#include <iostream>

using namespace std;

PBruch ::PBruch(int a,int b)
{
    zaehler=a;
    nenner=b;
}

void PBruch::Print(void)
{
  cout << "(" << zaehler << "/" << nenner << ")";
}

PBruch PBruch ::operator *(const PBruch &b)
{
  PBruch help(0,0);
  help.zaehler= zaehler*b.zaehler;
  help.nenner= nenner*b.nenner;
  return help;
}


// Bruch1.cpp
//-----------------
#include <iostream>
#include "pbruch.h"

using namespace std;

int main()
{
  PBruch b1(3,4),b2(7,2),b3(0,0);
  b3=b1*b2;
  cout << "Bruch :";
  b3.Print();
  cout << endl;


  return 0;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.08.2002, 16:38 Uhr
virtual
Sexiest Bit alive
(Operator)


Max würde ich nicht implementieren. Ich würde vor allem - neben den Grundrechenarten - die Vergleichsoperatoren sowie die Ein- und ausgabe operatoren definieren.
max/min usw. bekommst du dann eigentlich umsonst, weil die STL ein entsprechendes Template definiert, das allerdings erfordert, dass du die vergleichsoperatoren implementierst.

Wichtig ist ausserdem eine (interne) Methode, die einen Bruch kürzen kann.
--
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
002
12.08.2002, 23:15 Uhr
uTaNG



Ich bräuche auf jedenfall eine MAX funktion! Schon alleine von der Aufgabenstellung her... die kamm von der schule =( ich hielts ebenfalls nicht für sehr sinnvoll nur die Lehrerin ... =( und ich bin am grübel .... ich hasse brüche ....
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.08.2002, 16:22 Uhr
~Cpt._OneEye
Gast


*= überladen:

PBruch PBruch ::operator *=()
{
zaehler=zaehler*zaehler;
nenner=nenner*nenner;
return *this;
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.08.2002, 17:04 Uhr
uTaNG



hmm, genau.... danke!

Jetzt heist es nur noch die Funktion MAX zu basteln ... *grübel*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.08.2002, 22:42 Uhr
virtual
Sexiest Bit alive
(Operator)


Ich versteh Lehrer nicht, die einen dazu zwingen, das Rad mehrmals zu erfinden. Naja, was solls. Nehmen wir mal an, dass folgende sei ein friend von PBruch:

C++:
bool
operator < (const PBruch& A, const PBruch& B)
{
     return A.zaehler*B.nenner<B.zaehler*A.nenner;
}


(Diese Implementation nimmt an, dass die nenner stets positiv sind, ohne diese Einschraenkung - die sinnvoll waere - wird die implementation etwas komplizierter)
Dann wäre max ja einfach:

C++:
PBruch max(const PBruch& A, const PBruch& B)
{
    return A<B? B:A;
}


--
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 <     [ 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: