Frage bezüglich Referenz



  • Ich habe hier in einem C++ Buch eine Übung, welche folgendes verlangt,

    Schreiben Sie eine Funktion maximum die zwei Adresse von int-Variblen übergeben bekommt und die Variable mit dem grösseren Wert als Referenz rurückliefert

    Das ist ja soweit kein Problem, habe auch die dazugehörige Lösung verstanden,

    int& maximum(int* a, int* b) {
      if(*a>*b)
        return(*a);
      else
        return(*b);
    }
    
    int main() {
    
      int a=20, b=30;
      cout << maximum(&a, &b) << endl;
    
    }
    

    Bei der Funktion maximum sieht man, das ein Rückgabewert als Referenz zurückgegeben wird, aber falls man da den Rückgabewert nicht als Referenz zurück gibt also einfach int maximum... statt int& maximum... funktioniert es genau gleich.

    Meine Frage ist jezt, wo liegt der Unterscheid?
    Gibt es da was grundlegendes, oder will das Buch da eher nur die Möglichkeiten zeigen?


  • Mod

    Der Unterschied ist: Eine Referenz kannst du ändern:

    int a=20, b=30;
      maximum(&a, &b) =40;
      // b sollte nun den Wert 40 haben.
    


  • Scheint so zu sein, danke.
    Macht in diesem Beispiel zwar keinen all zu grossen Sinn, aber gut zu wissen 🙂


Anmelden zum Antworten