缺省参数:就是在声明函数的某个参数的时候为之指定一个默认值。
在调用该函数的时候如果没有指定该参数的值,则采用该默认值。
如下声明:
int add(int a=3,int b=5);
看具体的例子:
int add(int a=3,int b=5)
{
return a+b;
}
int sub(int x,int y=2)
{
return x-y;
}
int main()
{
cout<<"add()="<<add()<<endl; //未指定参数值,两个都用默认值,3+5=8
cout<<"add(5)="<<add(5)<<endl; //指定了一个参数值,赋给第一个参数,5+5=10
cout<<"add(5,6)="<<add(5,6)<<endl; //指定了两个参数值,5+6=11
//cout<<"sub()="<<sub()<<endl;//会报错,因为没有两个默认的值
cout<<"sub(8)="<<sub(8)<<endl;//未指定第二个参数时,用默认值y=2,8-2=6
cout<<"sub(8,3)="<<sub(8,3)<<endl; //指定了第二个参数的值y=3,8-3=5
system("pause");
return 0;
}
输出结果:
缺省参数注意事项:
----- 函数的处理顺序是从右往左。所以对于缺省参数来说,它的缺省顺序也应该是从右向左
----- 把缺省的放到右边,不缺省的放到最左边。缺省参数中间不能穿插不缺省的参数。
函数指针没有默认参数,函数指针必须全部输入数据,而且函数指针需要精确调用,函数重载和函数缺省参数容易发生冲突。