Default arguments in C++

Sep 2, 2018

There is no provision for supplying less number of arguments to the function during its call in C programming; C++ supports this type of feature, and the feature is achieved by default arguments mechanism. The default values for the function arguments are specified when function is declared, and is specified as variable initialization. The default values can be constants, global variables, or even a function call.

Example.

#include<iostream>
using namespace std;
// example of default arguments

int sum(int s1 = 10, int s2 = 20, int s3 = 30){
	return s1 + s2 + s3;
}

int main(){
	cout<<"With no arguments :"<<sum()<<endl;
	cout<<"With one arguments :"<<sum(50)<<endl;
	cout<<"With two arguments :"<<sum(50, 60)<<endl;
	cout<<"With three arguments :"<<sum(50, 60, 70)<<endl;
	return 0;
}

 

Sample Run:

With no arguments :60
With one arguments :100
With two arguments :140
With three arguments :180

 

key points regarding default arguments

  • Default arguments are different from constant arguments as constant arguments can't be changed whereas default arguments can be overwritten if required.
  • All of the default arguments must be in the right part of the parameter list. Suppose a function has more than one default arguments. In a function call, if a value of a default argument is not specified, then the arguments from the right are omitted.
  • There will be a problem if the default arguments are declared by making the right most arguments default. for example, the declarations are invalid. 

        int sum(int s1, int s2=10,int s3); //error

        int sum(int s1, int s2,int s3); //error

        int sum(int s1=60, int s2=10,int s3); //error

Related


Tools/Apps





© Nepal Exchange Rates