►C++允许在函数定义或函数声明时,为形参指定默认值,这样的参数称为默认参数(default argument),一般形式为:
返回类型 函数名(...,类型 默认参数名=默认值)
{
函数体
}
(1)如果在函数定义时设置了默认参数,那么就不能在函数声明中再次设置,反之亦然。
(2)可以设置多个默认参数,设置的顺序为自右向左,换言之, 要为某个参数设置默认值,则它右边的所有参数必须都是默认参数。
(3)默认值可以是常量、全局变量,甚至是一个函数调用(调用实参必须是常量或全局变量的表达式),不可以是局部变量。
默认参数函数的调用:
默认参数本质上是编译器根据函数声明或函数定义时的默认参数设置,对函数调用中没有给出来的实参自动用默认值表达式“补齐” 再进行编译。
如:
#include <iostream>
using namespace std;
int p1=2 , p2=10 ;
int max( int a,int b)
{
return a>b ? a : b;
}
int volume(int L=1, int w=p1+p2 , int H=max(p1,p2))
{
return L *w*H;
}
int main()
{
cout << "vO=" << volume() <<endl;
cout << "v1=" << volume(5) <<endl;
cout << "v2=" << volume(5,10) <<endl;
cout<<"v3="<<volume(5,10,15) <<endl;
return 0;
}