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
#include "gruppe.hpp"
#include <algorithm>
namespace Geo {
/* add
* - Element einfügen
*/
void GeoGruppe::add (GeoObj& obj)
{
// Adresse vom geometrischen Objekt eintragen
elems.push_back(&obj);
}
/* remove
* - Element löschen
*/
bool GeoGruppe::remove (GeoObj& obj)
{
// erstes Element mit dieser Adresse finden
std::vector<GeoObj*>::iterator pos;
pos = std::find(elems.begin(),elems.end(),
&obj);
if (pos != elems.end()) {
elems.erase(pos);
return true;
}
else {
return false;
}
}
/* draw
* - alle Elemente unter Berücksichtigung des Referenzpunktes ausgeben
*/
void GeoGruppe::draw () const
{
for (unsigned i=0; i<elems.size(); ++i) {
elems[i]->move(refpunkt); // Offset für den Referenzpunkt addieren
elems[i]->draw(); // Element ausgeben
elems[i]->move(-refpunkt); // Offset wieder entfernen
}
}
} // namespace Geo