vererb/geoobj1.hpp

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 GEOOBJ_HPP
#define GEOOBJ_HPP

// Headerdatei für Koord
#include "koord.hpp"

namespace Geo {

/* abstrakte Basisklasse GeoObj
 * - gemeinsame Basisklasse für geometrische Objekte
 * - zur Vererbung vorgesehen
 */
class GeoObj {
  protected:
    // Jedes GeoObj hat einen Referenzpunkt
    Koord refpunkt;

    /* Konstruktor für Startwert vom Referenzpunkt
     * - nichtöffentlich
     * - damit ist kein Default-Konstruktor vorhanden
     */
    GeoObj (const Koord& p) : refpunkt(p) {
    }

  public:
    // GeoObj um relativen Offset verschieben
    virtual void move (const Koord& offset) {
        refpunkt += offset;
    }

    /* GeoObj ausgeben
     * - rein virtuelle Funktion
     */
    virtual void draw () const = 0;

    // virtueller Destruktor
    virtual ~GeoObj () {
    }
};

}  // namespace Geo

#endif  // GEOOBJ_HPP