我们先来看一段代码
#include<iostream>
using namespace std;
void Func(int a=0)//我们定义一个名为Func的函数,其中的参数为a=0,而这个a=0就是缺省参数
{
cout << a << endl;
}
int main()
{
Func(5);//和c语言一样我们给这个函数传递一个实参
}
当我们正常传参的时候,它的输出就是根据实际参数的值来决定
那缺省参数有什么用呐
当我们不传入参数的时候
#include<iostream>
using namespace std;
void Func(int a=0)//我们定义一个名为Func的函数,其中的参数为a=0,而这个a=0就是缺省参数
{
cout << a << endl;
}
int main()
{
Func(5);//和c语言一样我们给这个函数传递一个实参
Func();
}
你看确实参数的值就显现出来,我愿称之为备胎参数
缺省参数的分类
全缺省
还是来看代码
#include<iostream>
using namespace std;
void Func(int a=1, int b=2, int c=3)//全缺省
{
cout << "a="<<a << endl;
cout << "b=" << b << endl;
cout << "c=" << c << endl;
}
int main()
{
Func();//我们可以一个也不传,用缺省参数的值
Func(5);//也可以传一个,剩下用缺省参数的值
Func(5, 6, 7);//也可以传三个
getchar();
return 0;
}
半缺省
半缺省其实就缺省部分参数
#include<iostream>
using namespace std;
void Func(int a, int b=2, int c=3)//全缺省
{
cout << "a="<<a << endl;
cout << "b=" << b << endl;
cout << "c=" << c << endl;
}
int main()
{
Func(1);//半缺省就不能一个也不传,根据缺省的参数数来确定最少传入的参数
Func(5,4);//也可以传一个,剩下用缺省参数的值
Func(5, 6, 7);//也可以传三个
getchar();
return 0;
}
半缺省必须有个规定:就是从右往左依次缺省,不能间隔!!!