Zeiger als Parameter von Funktionen
-
Ethon schrieb:
Wenn die Funktion fehlschlagen kann, dann würde ich eine Exception werfen.
ohoh, das ist aber gefährlich. Woher soll denn der DAU wissen, dass deine Funktion fehlschlagen könnte und dann eine Exception wirft?
Sag jetzt bitte nicht "Doku", denn
Ethon schrieb:
1. Es gibt immer Leute, die nicht in die Doku schauen.
-
Sone schrieb:
sorry, aber eine Referenz und ein Pointer unterscheiden sich nur geringfügig.
Jein. Ein Zeiger speichert eine Adresse. Eine Referenz referenziert ein Objekt. Wo ist da, ganz technisch, die Gemeinsamkeit?
Klar, ihr Zweck ist letzten Endes sehr ähnlich.Du weißt schon dass du auch bei Zeigern von Referenzierung/Dereferenzierung sprichst oder?
Eine Referenz verhält sich syntaktisch wie ein bestehendes Objekt (wurden sie deswegen nicht sogar eingeführt? Wegen der Syntax der Operatorenüberladung ?) und sie muss zwingend mit einem Objekt initialisiert werden. Ansonsten sind sie gleich.
Im Compileroutput ist eine Referenz nicht von einem Zeiger zu unterscheiden, das ist reiner Syntaxzucker.daddy_felix schrieb:
Ethon schrieb:
Wenn die Funktion fehlschlagen kann, dann würde ich eine Exception werfen.
ohoh, das ist aber gefährlich. Woher soll denn der DAU wissen, dass deine Funktion fehlschlagen könnte und dann eine Exception wirft?
Sag jetzt bitte nicht "Doku", denn
Ethon schrieb:
1. Es gibt immer Leute, die nicht in die Doku schauen.
Dann wird der Exception vermutlich bis in die Main durchrauschen und es gibt eine schöne Fehlermeldung und der Nutzer weiß es.

Im meinem Fall wäre es eine Referenz, die mitten in den Stack zeigt. Das ist ganz böse.
-
Ethon schrieb:
Eine Referenz verhält sich syntaktisch wie ein bestehendes Objekt (wurden sie deswegen nicht sogar eingeführt? Wegen der Syntax der Operatorenüberladung ?) und sie muss zwingend mit einem Objekt initialisiert werden. Ansonsten sind sie gleich.
Im Compileroutput ist eine Referenz nicht von einem Zeiger zu unterscheiden, das ist reiner Syntaxzucker.Der Compileroutput interssiert mich meistens nicht. Wenn er mich interessieren würde, kann ich auch gleich wieder C programmieren. In C++ ist eh fast alles syntaktischer Zucker.
Referenzen unterscheiden sich nicht nur syntaktisch sondern auch semantisch doch recht erheblich voneinander.
Referenzen stellen über ihre gesamte Lebensdauer ein Alias auf ein Objekt dar. Zeiger können während ihrer Lebensdauer auf viele verschiedene Objekte, auf ein definiert ungültiges Objekt, oder auf irgendetwas zeigen. Ich finde, das sind genügend Unterschiede.