KLassen und Obejkte

Definition einer Klasse für rationale Zahlen in Form einer eigenen Headerdatei

rzahlen.h
#include <iostream>
 
int ggt(int x, int y);
 
class CRZahl  // hier wird die Klasse CRZahl implementiert
{
  private:
   int zaehler,nenner;         // Datenelemente
  public:             
   void eingabe(int z, int n);  // Methodenelemente
   void eingabedez(float r);
   void ausgabe();
   void ausgabedez();
   void kuerzen();
   void erweitern(int e);
};      
 
// Implementation der Methoden der Klasse CRZahl
   void CRZahl::eingabe(int z, int n)  // Methodenelemente
        {zaehler=z;nenner=n;}
   void CRZahl::eingabedez(float r)
        {zaehler=(int)(r*100); nenner=100;
         kuerzen();}        
   void CRZahl::ausgabe()
        {std::cout<<zaehler<<"/"<<nenner<<"\n";}     
   void CRZahl::ausgabedez()
        {printf("%.2f",(float)zaehler/(float)nenner);
         std::cout<<"\n";}                          
   void CRZahl::kuerzen()
        {int teiler=ggt(zaehler,nenner);
         zaehler/=teiler; nenner/=teiler;}
   void CRZahl::erweitern(int e)
        {zaehler*=e;nenner*=e;}                            
 
// Implementierung normaler Funktionen
int ggt(int x, int y)
{
 while (x!=y)
 {
  if (x>y) x=x-y;
  else if (x<y) y=y-x;    
 }         
 return x;
};    

Beispeildatei, die die obige Klasse nützt:

klasse1.cpp
//Klassen und Objekte
#include <rzahlen.h>
 
main ()
{CRZahl Bruch;
 cout<<"Rationale Zahlen\n";
 Bruch.eingabe(917,700);
 Bruch.ausgabe();
 Bruch.kuerzen();
 Bruch.ausgabe();
 Bruch.erweitern(2);
 Bruch.ausgabedez();
 Bruch.eingabedez(1.54);
 cout<<endl;
 Bruch.ausgabe();   
 
 system("PAUSE");
}