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!!!
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!!!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 136872
Url: https://administrator.de/contentid/136872
Ausgedruckt am: 26.11.2024 um 01:11 Uhr
2 Kommentare
Neuester Kommentar
Hi Hacker,
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
. . . 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