Pointer Frage
-
ich habe noch immer ein problem mit diesen pointern
wenn ich jetzt eine klasse habe die als attribut ein pointer hat und eine methode habe die den pointer zurückliefert erstellt die methode eine kopie des pointers und gibt diese zurück oder muss ich eine referenz von diesem pointer zurückgeben
besser ist es wenn ich es euch mit dem code darstelle
class klasse
{
node* getPtr(); // call by reference?
// oder
node*& getPtr(); // call by reference?
private:
node* ptr;
};ich will nämlich den ptr verändern.
-
Wenn du den pointer veränder willst solltest du eher etwas in der Art von
void setPtr(node* ptr)
versuchen.
-
Oberon_0 schrieb:
Wenn du den pointer veränder willst solltest du eher etwas in der Art von
void setPtr(node* ptr)
versuchen.das beantwortet aber nicht meine frage
muss ich '&' als rückgabewert angeben oder reicht ein '' ?
-
Du gibst eine Kopie des Pointers zurück. Diese Kopie verweist auf den gleichen Speicherbereich auf den auch der Originalpointer zeigt. Veränderungen des Inhalts der Kopie (durch zB = new...) haben keine Auswirkung auf dem Originalpointer.
Um diese zu erzielen entweder eine Referenz auf den Pointer zurückgeben (oder einen Pointer-Pointer was aber häßlich ist) oder gleich so eine set-Funktion wie schon vorgeschlagen benutzen.
-
frage beantwortet. danke!