hacker
Goto Top

Dereferenzierungsoperator überladen

-> Operator überladen

Hallo,

Ich habe eine Iteratorklasse geschrieben, und möchte jetzt den -> Operator überladen, um das ganze etwas freundlicher zu gestalten.
Aber ich weis leider nicht, welchen Rückgabetyp ich wählen muss. Ich hab zwar in der list - Headerdatei der STL nachgesehen, aber da verwenden sie nur irgendwelche mit typedef erstellten Datentypen bei denen ich beim Rückverfolgen immer bei void rauskomme. void* hab ich schon versucht, ist auf jeden Fall nicht die Lösung.
Ich hab zwar schon den * Dereferenzierungsoperator überladen, aber ohne -> ist es einfach nicht das selbe ;(.

Schon mal Danke für eure Antworten!!!

Content-ID: 136872

Url: https://administrator.de/contentid/136872

Ausgedruckt am: 26.11.2024 um 01:11 Uhr

Guenni
Guenni 26.02.2010 um 15:58:30 Uhr
Goto Top
Hi Hacker,

. . . Aber ich weis leider nicht, welchen Rückgabetyp ich wählen muss. . . .

Der Rückgabetyp vom Operator -> muß ein Zeiger auf ein Element einer Klasse sein,

allerdings auf ein Element einer anderen Klasse, sollte er überladen sein.

Siehe => http://www.math.uni-wuppertal.de/~axel/skripte/oop/oop13_6.html

Was bedeutet . . . aber ohne -> ist es einfach nicht das selbe . . . ?

Wenn du den Operator -> auf deine Klasse anwenden willst, so muß

eine Variable dieser Klasse als Zeiger deklariert werden, z.B.:

Klasse* variable=new Klasse;

variable->print() z.B. ruft dann eine Elementfunktion deiner Klasse auf.

Gruß
Günni
Hacker
Hacker 26.02.2010 um 20:49:17 Uhr
Goto Top
Danke, Günni!!

Mir erschließt sich zwar nicht, warum der Zurückgelieferte Zeiger nicht dereferenziert werden muss, aber ich denke, das wird der Compiler wahrscheinlich selbst machen.

Na ja, jedenfalls ist meine Klasse jetzt gerettet!!!