定义:C++在声明函数原型时,可为一个或多个参数指定缺省参数值,以后调用此函数,若省略其中某一参数,C++自动地以缺省值作为相应参数的值。
例如函数原型说明为:
int add(int x=15,float y=20.56);
当进行函数调用时,可以有以下几种形式
1) add(100,79.8); // x=100,y=79.8
2) add(25); // x=25,y=20.56
3) add(); // x=15,y=20.56
特别说明:
- 只能在声明时设置默认参数
- 采用的是由右向左的顺序,中间不能断,必须是连续的.
如:int fun(int i,int j=5,int k);//错误,k未使用 - 如果是声明和定义分开的情况. 声明可以定义默认值,定义中不再指定缺省参数.
- 调用时实参对形参的初始化必须是从左向右的
class A
{
public:
int f1(int a = 20, int b = 30, int c = 10);
int f2(int n)
{
return n;
}
int f3(char c, int a = 30); //声明
double f4(double fA, double fB, double fC = 20.34)
{
return fA + fB + fC;
}
void fx()
{
cout << f1() << endl;
cout << f4(20.34, 30.45) << endl;
}
};
int A::f1(int a, int b, int c /* =10 */)
{
return a + b + c;
}
int A::f3(char c, int a /* = 30 */) //定义 定义不能指定默认值.
{
return c + a;
}