vererb/gruppe2.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 GEOGRUPPE_HPP
#define GEOGRUPPE_HPP

// Headerdatei der Basisklasse einbinden
#include "geoobj.hpp"

// Headerdatei für die interne Verwaltung der Elemente
#include <vector>

namespace Geo {

/* Klasse GeoGruppe
 * - abgeleitet von GeoObj
 * - eine GeoGruppe besteht aus:
 *     - einem Referenzpunkt (geerbt)
 *     - einer Menge von geometrischen Elementen (neu)
 */
class GeoGruppe : public GeoObj {
  protected:
    std::vector<GeoObj*> elems;    // Menge von Zeigern auf GeoObjs

  public:
    // Konstruktor mit optionalem Referenzpunkt
    GeoGruppe (const Koord& p = Koord(0,0)) : GeoObj(p) {
    }

    // Ausgabe (jetzt auch implementiert)
    virtual void draw () const;

    // Element einfügen
    virtual void add (GeoObj&);

    // Element entfernen
    virtual bool remove (GeoObj&);

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

}  // namespace Geo

#endif  // GEOGRUPPE_HPP