000
01.06.2005, 16:07 Uhr
~Daywalker
Gast
|
Hallo zusammen, habe eine Problem mit der Rückgabe von Iteratoren an mein Programm. Ich verwende ein list - Template der STL, welches ich mit Objekten einer selbstdefinierten Klasse ClFest fülle. Die Liste selber wird in der Klasse ClKalender aufgebaut. Die Methoden, über welche ich die Elemente der Liste manipuliere, gehören zur Klasse ClKalender. Hier erst mal was Quelltext:
C++: |
list<ClFest> kalender; list<ClFest>::iterator pos;
|
=> Deklaration in main()
C++: |
kalender.push_back(ClFest (datei));
|
=> füllen der Liste durch eine Methode der Klasse ClKalender, funktioniert soweit, kann also innerhalb von ClKalender auf dei ELemente zugreifen und ihre Attribute ausgeben bzw. verändern => nun möchte ich aber in der KLasse ClFest diese Liste durchlaufen und an die aufrufende Methode von ClKalender das Ergebnis des Suchlaufs als Pointer auf ein Objekt des Typs ClFest zurückgeben
C++: |
pos = kalender.begin(); //Zuweisung Iterator (*pos).festalsname(bezeichnung,kalender); // eigentlicher Funktionsaufruf
|
=> hier übergeben ich der Methode der Klasse ClFest meine Liste kalender, damit diese durchsucht werden kann
C++: |
ClFest *ClFest::festalsname( char *bezeichnung, list<ClFest> kalender) { list<ClFest>::iterator pos; pos = kalender.begin(); //hier wird die Liste nach einem Element durchsucht return pos; //wie der Funktionskopf zeitg, soll als Rückgabewert ein Pointer auf ein Element der Liste kalender (typ ClFest) zurückgegeben werden.
|
=> meine bisherigen Versuche führten dazu, dass entweder bereits der Compiler motzte, falls nicht aber zumindest das Programm abstürzte, sobald diese Stelle erreicht wurde P.S. ich benutze keinerlei Vererbungshierarchie, da ich das Programm nachträglich von einer "normalen" Liste auf eine Template - Liste der list - bibliothek umstelle
Danke schon mal, ich weiß nicht mehr weiter! Patrick |