Dieses Programm zeigt die verschiedenen Arten der Parameterübergabe bei Funktionen auf. Es werden jeweils dieselben Variablen auf 3 verschiedenen Arten (per Wert, per Referenz, per Zeiger) übergeben.
/* Beispiel: Funktionen - Parameterübergabe Filename:Parameteruebergabe.cpp Author:Lahmer Title:Parameterübergabe Description: Anhand dieses Beispiels werden die verschiedenen Arten der Parameterübergabe erklärt Last Change:16.01.2018 */ //Hedader-Dateien bzw. Bibliotheken #include <iostream> #include <conio.h> //Namespace (Namensraum) using namespace std; //Prototyp, Deklaration int sumW(int x,int y); //Parameterübergabe per Wert (Value) int sumR(int &x,int &y); //Parameterübergabe per Referenz (Reference) int sumZ(int *x,int *y); //Parameterübergabe per Zeiger (Pointer) //Hauptprogramm int main(int argc, char** argv) { //Ausgabe cout << "Hello World" << endl; //Lokale Variablen mit Datentyp int => ganzzahlige Zahlen int a=5,b=6,erg=0; //Parameterübergabe per Wert cout << "Parameteruebergabe per Wert" << endl; //Funktionsaufruf per Wert = Kopie der Variable erg=sumW(a, b); //Ausgabe der Variablen a bzw. b cout << "a: " << a <<endl; cout << "b: " << b <<endl; //Parameterübergabe per Referenz cout << "Parameteruebergabe per Referenz" << endl; a=5,b=6,erg=0; //Funktionsaufruf per Referenz = Verknüpfung der Variablen a bzw. b erg=sumR(a, b); //Ausgabe der Variablen a bzw. b cout << "a: " << a <<endl; cout << "b: " << b <<endl; //Parameterübergabe per Zeiger cout << "Parameteruebergabe per Zeiger" << endl; a=5,b=6,erg=0; //Funktionsaufruf per Referenz = Übergabe der Adressen der Variablen a bzw. b erg=sumZ(&a, &b); //Ausgabe der Variablen a bzw. b cout << "a: " << a <<endl; cout << "b: " << b <<endl; //Auf Tastendruck warten getch(); //Rückgabewert = 0 return 0; } //Funktionendefinition - Parameterübergabe per Wert int sumW(int x,int y){ x+=1; //x=x+1; x++; ++x; y+=1; cout << "x: " << x <<endl; cout << "y: " << y <<endl; //Rückgabewert Summe von x+y return x+y; } //Funktionendefinition - Parameterübergabe per Referenz int sumR(int &x,int &y){ x+=1; //x=x+1; x++; ++x; y+=1; cout << "x: " << x <<endl; cout << "y: " << y <<endl; //Rückgabewert Summe von x+y return x+y; } //Funktionendefinition - Parameterübergabe per Zeiger int sumZ(int *x,int *y){ *x+=1; //x=x+1; x++; ++x; *y+=1; cout << "x: " << *x <<endl; cout << "y: " << *y <<endl; //Rückgabewert Summe von x+y return *x+*y; }
Hello World Parameteruebergabe per Wert x: 6 y: 7 a: 5 b: 6 Parameteruebergabe per Referenz x: 6 y: 7 a: 6 b: 7 Parameteruebergabe per Zeiger x: 6 y: 7 a: 6 b: 7