KLassen und Obejkte

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

rzahlen.h
#include <iostream>
 
using namespace std;
 
int ggt(int x,int y);
 
class CRZahl {  // hier wird die Klasse CRZahl impementiert
private:
  int zaehler,nenner;   // Eigenschaften (Properties)
public:
  void eingabe(); // Methoden 
  void eingabedez();
  void ausgabe();
  void ausgabedez();
  void kuerzen();
  void erweitern(int e);	
};
 
// Implementierung der Methoden
void CRZahl::eingabe() {
  cout << "\nZaehler: ";
  cin >> zaehler;
  cout << "Nenner: ";
  cin >> nenner;
}
 
void CRZahl::eingabedez() {
  float rzahl;	
  cout << "\nRationale Zahl: "; cin >> rzahl;
  float hzaehler=rzahl*1000;
  zaehler=(int)hzaehler;
  nenner=1000;
}
 
void CRZahl::ausgabe() {
 cout<<zaehler<<"/"<<nenner<<endl;
}
 
void CRZahl::ausgabedez(){
  float z;
  z=(float)zaehler/nenner;
  cout << "Bruch als Dezimalzahl: "	<< z << "\n";
}
 
void CRZahl::kuerzen() {
  int teiler=ggt(zaehler,nenner);
  zaehler=zaehler/teiler;nenner=nenner/teiler;	
}
 
void CRZahl::erweitern(int e) {
  zaehler=zaehler*e;
  nenner=nenner*e;
}
 
// Implementierung der Funktionen
int ggt(int a, int b)  {
  while (a!=b) {
  	if (a>b) a=a-b;
  	else if (b>a) b=b-a;
  }	
  return a;
}

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");
}