Listenklasse - wie am besten in OOP?

Alles rund um die Programmierung mit Qt
Antworten
stevy
Beiträge: 15
Registriert: 25. August 2006 16:31

Listenklasse - wie am besten in OOP?

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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)...
Antworten