Say, you want to pass some information to a Function.
For example, if you want a Function to add two numbers. You need to pass those two numbers to the Function.
Say, in the below example, you want the add Function to add two numbers for you. And you have passed those numbers in between the brackets () of the add Function(i.e. firstNumber and secondNumber).
And those elements inside the brackets () of the add Function is called as Parameters and the actual values passed to them are called as Arguments.
#include <iostream> using namespace std; //Add function starts here. int add(int firstNumber, int secondNumber) { int result; result = firstNumber + secondNumber; return result; } int main() { int firstNum = 5; int secondNum = 8; int addedResult; addedResult = add(firstNum,secondNum); cout << "The added value is : " << addedResult; }
So, the variables inside the add() Function is called as Parameter.
And the actual values (i.e. 5 and 8) to be sent to the Function are the Arguments.
Throughout the tutorial we will be calling the Parameters as Arguments to avoid unnecessary confusion.
Now, what if, you have defined a Function with two Argument but made the Function call with one argument.
Now, what if, you have defined a Function with two Argument but made the Function call with one argument.
#include <iostream> using namespace std; //Add function starts here. int add(int firstNumber, int secondNumber, int thirdNumber) { int result; result = firstNumber + secondNumber + thirdNumber; return result; } int main() { int firstNum = 5; int secondNum = 8; int addedResult; addedResult = add(firstNum,secondNum); cout << "The added value is : " << addedResult; }
So, in the above code we have the add Function with three Arguments.
int add(int firstNumber, int secondNumber, int thirdNumber)
But when the add Function is called, it is called with two Arguments only.
And there is a mismatch of Arguments. And we end up with the below error.
error: too few arguments to function int add(int, int, int)
Let us see in the next example, how to fix it.
To solve the problem of Argument mismatch, we use default arguments in function definition.
Let us see in the below example.
#include <iostream> using namespace std; //Add function starts here. int add(int firstNumber, int secondNumber, int thirdNumber = 11) { int result; result = firstNumber + secondNumber + thirdNumber; return result; } int main() { int firstNum = 5; int secondNum = 8; int addedResult; addedResult = add(firstNum,secondNum); cout << "The added value is : " << addedResult; }
So, in the previous example, we got the error as,
error: too few arguments to function int add(int, int, int)
And, to avoid the Argument mismatch problem, we have used default arguments in function definition.
Placing default arguments in function definition.
int add(int firstNumber, int secondNumber, int thirdNumber = 11)
So, we have placed the default value, 11 for the third argument
Now, although the function is called with two parameters,
addedResult = add(firstNum,secondNum);
With values, 5 and 8.
int firstNum = 5; int secondNum = 8;
The function add() is called. And firstNum is passed to firstNumber and secondNum to secondNumber.
So, what happens to the third argument?
Well! It gets initialised with the default value 11.