In the previous lessons, we have used void
in the function declaration. This means the function is not returning any value.
It's also possible to return a value from a function. For this, we need to specify the returnType
of the function during function declaration.
Inside the function, we can use the return
statement to send a value back out of a function.
The directive return
can be in any place of the function. When the execution reaches it, the function stops, and the value is returned to the calling code (assigned to answer
below):
int plusThree(int num) {
return num + 3;
}
// Inside main function:
int answer = plusThree(5);
cout << answer; // Output: 8
Here, we have the data type int
instead of void
. This means that the function returns an int value.
plusThree
takes an int argument for num
and returns an int value equal to num + 3
.
Assignment
Follow the Coding Tutorial and let's write some functions.
Hint
Look at the examples above if you get stuck.
In this lesson, we will explore how to return values from functions in C++. Understanding how to return values is crucial for writing effective and reusable code. Functions that return values are used extensively in various programming scenarios, such as mathematical computations, data processing, and more.
Before diving into more complex examples, let's understand the fundamental concepts of returning values from functions. In C++, a function can return a value by specifying a return type other than void
. The return
statement is used to send a value back to the calling code.
For example:
int add(int a, int b) {
return a + b;
}
In this example, the function add
takes two integer arguments and returns their sum.
Let's break down the key concepts and techniques involved in returning values from functions:
return
statement is used to return a value from the function. When the return
statement is executed, the function terminates, and the value is sent back to the caller.Example:
double multiply(double x, double y) {
return x * y;
}
In this example, the function multiply
returns the product of two double values.
Let's look at some examples to see how returning values from functions can be applied in various contexts:
#include <iostream>
using namespace std;
int square(int num) {
return num * num;
}
int main() {
int result = square(4);
cout << "Square of 4 is: " << result << endl; // Output: Square of 4 is: 16
return 0;
}
In this example, the square
function returns the square of the input number.
When working with functions that return values, it's important to avoid common mistakes and follow best practices:
Advanced techniques can enhance the functionality of functions that return values:
Example of a recursive function:
int factorial(int n) {
if (n <= 1) return 1;
return n * factorial(n - 1);
}
Here is a well-commented code snippet demonstrating the correct use of returning values from functions:
#include <iostream>
using namespace std;
// Function to add two integers
int add(int a, int b) {
return a + b; // Return the sum of a and b
}
int main() {
int sum = add(10, 20); // Call the add function and store the result in sum
cout << "Sum of 10 and 20 is: " << sum << endl; // Output: Sum of 10 and 20 is: 30
return 0;
}
Debugging and testing are essential for ensuring the correctness of functions that return values:
Example of a test case:
#include <cassert>
void testAdd() {
assert(add(2, 3) == 5);
assert(add(-1, 1) == 0);
assert(add(0, 0) == 0);
}
int main() {
testAdd();
cout << "All test cases passed!" << endl;
return 0;
}
Here are some strategies for approaching problems related to returning values from functions:
In this lesson, we covered the importance of returning values from functions in C++. We explored the basics, key concepts, examples, common pitfalls, advanced techniques, and best practices. Mastering these concepts will help you write more efficient and reusable code.
For further reading and practice, check out the following resources: