所谓的默认参数是指在调用时可以省略该参数, 即不传入参数
#include<iostream>
using namespace std;
void fun(int n = 100) //声明参数列表时将形参n的值赋值为100, 表示默认值
{
cout << "n = " << n << endl;
}
int main()
{
cout << "使用默认参数:";
fun(); //使用默认参数形式调用函数
cout << "使用自定义参数:";
fun(200); //向参数内传递值200
return 0;
}
使用默认参数:n = 100 使用自定义参数:n = 200
#include<iostream>
using namespace std;
void fun(int n = 100,int b=290) //声明参数列表时将形参n的值赋值为100, 表示默认值
{
cout << "n = " << n << endl;
cout << "b= " << b << endl;
}
int main()
{
cout << "使用默认参数:"<<endl;
fun(); //使用默认参数形式调用函数
cout << "使用自定义参数:"<<endl;
fun(200,33); //向参数内传递值200
return 0;
}
默认参数的一大特点就是当不传入参数时函数自动调用默认的参数值, 而当我们传入参数时, 函数便不再理会默认的参数值, 转而使用传递进来的参数值。
使用函数默认参数需要注意的问题:
参数默认必须是按从后向前的顺序, 例如 fun(int b, int n = 100) 这样是合法的, 而 fun(int n = 100, int b) 就是不合法的, 因为编译器会将传入的参数一一对应, 传入1个参数时编译器就会与默认参数对应起来, 此时b就没有传入参数, 也就自然报错了。如果传入两个那么默认参数也就没有存在的意义, 所以编译器规定参数默认必须是按从后向前。