Lektion 37:

Call by reference

 Sinnvoll können Referenzen als Parameter von Funktionen werden.

#include <iostream.h>
void swap(int &a,int &b)
{
   int tmp=a;
   a=b;
   b=tmp;
};
void main()
{
   int a=1;
   int b=2;
   swap(a,b);
   cout<<"a: "<<a<<endl;
   cout<<"b: "<<b<<endl;
};

 In diesem Beispiel sind die beiden Parameter a und b der swap-Funktion Referenz-Parameter. Das bedeutet, daß beim Funktionsaufruf nicht Kopien der Variablen der main-Funktion angelegt werden, sondern nur Zeiger auf diese Variablen.

Leider sieht man diese swap-Funktion sehr häufig. Bitte vermeiden Sie diese Verwendung von Referenz-Parametern trotzdem! Daß die Variablen a und b in der main-Funktion verändert werden können, nur weil sie Argumente einer Funktion waren ist einfach zu fehlerträchtig.

Übung:

Schreiben sie eine Funktion, die drei Zahlen a, b und c sortiert.

void main()
{
   int a=3;
   int b=5;
   int c=2;
   sort(&a,&b,&c);
   cout<<a<<endl;// Ausgabe: 2
   cout<<b<<endl;// Ausgabe: 3
   cout<<c<<endl;// Ausgabe: 5
};

Einsendungen:

Lösungsvorschlag
function overloading


Falls Ihnen Fehler im Text auffallen oder Sie Verbesserungsvorschläge haben, dann schicken Sie mir bitte eine Mail. Ich werde mich dann sofort darum kümmern.
[aktuelle Version] [inhalt] [index]      [Fehlerkorrektur, Verbesserungsvorschlag]

© Volkard Henkel <volkard@normannia.de>, last update: 08/25/00