我们先来看一段代码

#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;

}

浅谈缺省参数

半缺省必须有个规定:就是从右往左依次缺省,不能间隔!!!

 

相关文章: