Das folgende Code-Beispiel stammt aus dem Buch
Objektorientiertes Programmieren in C++
- Ein Tutorial für Ein- und Umsteiger
von Nicolai Josuttis, Addison-Wesley München, 2001
© Copyright Nicolai Josuttis 2001
#ifndef KBRUCH_HPP
#define KBRUCH_HPP
// Headerdatei der Basisklasse
#include "bruch.hpp"
// **** BEGINN Namespace Bsp ********************************
namespace Bsp {
/* Klasse KBruch
* - abgeleitet von Bruch
* - der Zugriff auf geerbte Komponenten wird nicht
* eingeschränkt (public bleibt public)
*/
class KBruch : public Bruch {
protected:
bool kuerzbar; // true: Bruch ist kürzbar
// Hilfsfunktion: größter gemeinsamer Teiler von Zähler und Nenner
unsigned ggt() const;
public:
/* Default-Konstruktor, Konstruktor aus Zähler
* und Konstruktor aus Zähler und Nenner
* - Parameter werden an Bruch-Konstruktor durchgereicht
*/
KBruch (int z = 0, int n = 1) : Bruch(z,n) {
kuerzbar = (ggt() > 1);
}
// multiplikative Zuweisung (neu implementiert)
const KBruch& operator*= (const KBruch&);
// Eingabe mit Streams (neu implementiert)
void scanFrom (std::istream&);
// Bruch kürzen
void kuerzen();
// Kürzbarkeit testen
bool istKuerzbar() const {
return kuerzbar;
}
};
} // **** ENDE Namespace Bsp ********************************
#endif // KBRUCH_HPP