In C++ Programming, you may pass values by reference but also you can return a value by reference. To understand this feature, you should have good knowledge of global variables. If a variable is defined outside every function, then that variable is called a global variable. Any part of program after global variable declaration can access global variable. Learn more about global variables. Consider this example:
Example 1: Return by Reference
#include <iostream>
using namespace std;
int n;
int& test();
int main() {
test() = 5;
cout<<n;
return 0;
}
int& test() {
return n;
}
Output
5
Explanation
In program above, the return type of function test() is int&. Hence this function returns by reference. The return statement is return n; but unlike return by value. This statement doesn't return value of n, instead it returns variable n itself.
Then the variable n is assigned to the left side of code test() = 5; and value of n is displayed.
Important Things to Care While Returning by Reference.
int& test() {
int n = 2;
return n;
}
- Ordinary function returns value but this function doesn't. Hence, you can't return constant from this function.
int& test() { return 2; }
- You can't return a local variable from this function.