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!


Anmelden zum Antworten