Wie verwendet man Referenzen-und Zeigerparameter innerhalb einer Funktion?



  • ich musste einige mal Code schreiben, der wie folgt aussah:

    P* methode(Typ* p) {
       eineAndereMethode(p);
    ....
    }
    

    oder :

    R& methode(Typ& r) {
      eineAndereMethode(r);
    ...
    }
    

    Meine Frage ist nun, wie übergebe ich die Parameter an die Methoden innerhalb der Methoden, kennzeichne ich sie da auch je nach Typ mit * oder & oder ist es so richtig, wie ich es gemacht habe? 😕

    Außerdem ist mir nicht so ganz klar, ob man beim Rückgabetyp anstelle der Referenz oder des Zeigers auch einen ganz 😋 "normalen" Typ zurückgeben kann.



  • Wie hast du eineAndereMethode() deklariert?



  • Generic412 schrieb:

    ich musste einige mal Code schreiben, der wie folgt aussah:

    P* methode(Typ* p) {
       eineAndereMethode(p);
    ....
    }
    

    oder :

    R& methode(Typ& r) {
      eineAndereMethode(r);
    ...
    }
    

    Meine Frage ist nun, wie übergebe ich die Parameter an die Methoden innerhalb der Methoden, kennzeichne ich sie da auch je nach Typ mit * oder & oder ist es so richtig, wie ich es gemacht habe? 😕

    Außerdem ist mir nicht so ganz klar, ob man beim Rückgabetyp anstelle der Referenz oder des Zeigers auch einen ganz 😋 "normalen" Typ zurückgeben kann.

    Du hast es richtig gemach!

    R& methode(Typ& r) {
    
    ...
    }
    

    Das ist eine Funktionsdefinition!

    ...
      eineAndereMethode(r);
    ...
    

    Zurückgegeben wird immer das, was du in der Funktionsdefinition festgelegt hast, also ein Wert, ein Zeiger, eine Referenz oder Garnichts (void)
    🙂
    Das ist ein Funktionsaufruf! (innerhalb einer Funktiosdefinition)



  • ...
      eineAndereMethode(r);
    ...
    

    Zurückgegeben wird immer das, was du in der Funktionsdefinition festgelegt hast, also ein Wert, ein Zeiger, eine Referenz oder Garnichts (void)
    🙂
    Das ist ein Funktionsaufruf! (innerhalb einer Funktiosdefinition)

    Müsste ich dann die Parameter der aufgerufenen Funktion innerhalb der Funktionsdefinition auch als Referenz oder Zeiger deklarieren?



  • Wobei man nichts per Referenz zurückgeben sollte was auf dem Stack der Funktion angelegt wurde! 😉


Anmelden zum Antworten