capypad
0 Tage Serie
cpp / beginner
Snippet

Übergabe nach Wert vs Referenz

Beim Übergeben von Argumenten an Funktionen erstellt C++ standardmäßig eine Kopie (Übergabe nach Wert). Die Verwendung des Et-Zeichens (&) in der Parameterdeklaration erstellt eine Referenz zur Originalvariable (Übergabe nach Referenz). Übergabe nach Wert schützt das Original vor Änderungen, verbraucht aber mehr Speicher. Übergabe nach Referenz ermöglicht Änderungen, beeinflusst aber direkt die Variable des Aufrufers.

snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
void byValue(int x) {
x = x + 10;
}
 
void byReference(int& x) {
x = x + 10;
}
 
int main() {
int a = 5;
int b = 5;
byValue(a);
std::cout << "byValue result: " << a << std::endl;
byReference(b);
std::cout << "byReference result: " << b << std::endl;
return 0;
}
Erklärung
1
void byValue(int x)
Parameter x ist eine Kopie des Arguments
2
void byReference(int& x)
Parameter x ist eine Referenz zum Original
3
a bleibt 5, b wird 15
Demonstriert den wesentlichen Unterschied