007
21.06.2011, 16:39 Uhr
ao
(Operator)
|
Entweder explizit über
Weg * Wegstrecke = new Weg[20]; Wegstrecke[0].vorgaenger = 0; // wenn vorgaenger private ist, machst du dir einen Setter dafür.
oder im Default-Konstruktor, der bei new Weg [20] für jedes Element aufgerufen wird. Dann ist es für alle Elemente erst mal auf 0 gesetzt, bis du es umsetzt.
Alternativ dazu gibts die Möglichkeit, statt eines Arrays einen passenden STL-Container zu verwenden. Wenn man eh schon C++ einsetzt, ist das häufig der bessere Weg.
So oder so, du musst diese Verkettung auf jeden Fall von außen steuern, die Weg-Elemente können das nicht selbst. Und falls dir jetzt auffällt, das passt aber grad schlecht, dann solltest du nochmal deinen Entwurf überprüfen. Häufig zeigen sich Entwurfsfehler daran, dass man die Klassenbeziehungen und Operationen nicht so wie ausgedacht programmieren kann.
Bei einem "guten" und richtigen Design dagegen gehen alle Operationen automatisch wie von selbst.
Vielleicht sollte das, was du "Weg" nennst, besser "Wegstück" heißen. Und ein "Weg" ist ein Container für mehrere Wegstücke und kümmert sich darum, die Stücke in der richtigen Reihenfolge hintereinander zu legen. Die Funktion "Berechnung der Längen" könnte sich dann vom Wegstück in den Weg verlagern.
Oder wie auch immer, das war bloß so ne Idee. Jedenfalls, ein guter Softwareentwurf ist eine Kunst und nicht mal so eben hingekritzelt. Da steckt die eigentliche kreative Arbeit drin. Das Runterschreiben des Codes ist nur Handwerk. Dieser Post wurde am 21.06.2011 um 16:41 Uhr von ao editiert. |