Seite 1 von 1

Listenklasse - wie am besten in OOP?

Verfasst: 11. Januar 2007 15:44
von stevy
Hallo,

ich habe eine zweidimensionale Karte mit Punkten darauf. Die Punkte sollen als Liste verwaltet werden. Es gibt ja dafür verschiedene Möglichkeiten. Welche ist aus Sicht der Objektorientierten Programmierung und der Performanz am besten?
Die Liste soll Schnittstellen zum Hinzufügen, Löschen, Iterieren etc. zur Verfügung stellen.

Variante 1 (typedef):

Code: Alles auswählen

struct Point
{
  int x;
  int y;
};

typedef QValueList<Point> Map;
Variante 2 (Ableitung):
Eine von QValueList abgeleitete Klasse Map.

Variante 3 (Delegation):

Code: Alles auswählen

struct Point
{
  int x;
  int y;
};

class Map
{
  QValueList<Point> points;
public:
  void addPoint(Point p) { points.append(p); }
  void removePoint(int i) { points.remove(p); }
  // weitere nützliche Funktionen, die delegiert werden
};
Was würdet ihr nehmen?
Grüße, Stevy

Verfasst: 11. Januar 2007 16:27
von upsala
1, du hast 5 Zeilen-Code und fertig. Bei 2 mußt du dir erst die ganze Klasse selbst schreiben. Solltest du aber noch Zusatzfunktionen brauchen, die QValueList nicht bietet, kannst du immer noch von QValueList ableiten und die zusätzlich benötigten Funktionen dazuschreiben. Außerdem gibt es ja noch QPointArray (Qt3) bzw. QPolygon (Qt4)...