Funktionen - Beispiel

Angabe

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.

Lösung

/* 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;
}

Ausgabe

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