c++学习笔记

c++函数的缺省参数

2020-07-12  本文已影响0人  檀香静雪

定义

c++中,定义函数的时候可以让最右边的连续若干个参数有缺省值,在调用函数的时候,如果不写相应位置的参数,则调用的参数就为缺省值。

例如:

void fun(int a, int b = 1, int c = 2) {
    cout << "a=" << a << "\tb=" << b << "\tc=" << c << endl;
}


在调用时,如果参数bc的参数没有给出,则默认为缺省值。

函数缺省参数的作用在于提高程序的可扩充性。比如某个以及写好的函数需要添加新的参数,而原先调用函数的的那些语句未必需要新增加的参数,为了避免对原来所有调用该函数的地方进行修改,就可以使用函数缺省参数了。

全缺省

顾名思义,全缺省就是参数的所有值都为缺省参数,如下代码所示:

#include<iostream>
using namespace std;
void fun(int a=1, int b = 2, int c = 3) {
    cout << "a=" << a << "\tb=" << b << "\tc=" << c << endl;
}
int main() {
    fun();
    fun(4, 5, 6);
    return 0;
}

执行该程序,输出:

a=1     b=2     c=3
a=4     b=5     c=6

需要注意的是,我们在调用函数时,只能缺省最右边的若干个参数,形如:fun(4, , 6);这种调用是错误的调用方法。

半缺省

半缺省指的是参数中有一部分为缺省参数,有一部分为非缺省参数。

值得注意的是,缺省参数只能为最右边的若干个

例如:

#include<iostream>
using namespace std;
void fun(int a, int b = 2, int c = 3) {
    cout << "a=" << a << "\tb=" << b << "\tc=" << c << endl;
}
int main() {
    fun(1);
    fun(1, 4);
    fun(4, 5, 6);
    return 0;
}

执行上面程序,输出如下:

a=1     b=2     c=3
a=1     b=4     c=3
a=4     b=5     c=6

形如:void fun(int a=1, int b, int c = 3) { }这样的语句是错误的用法。

形如:fun(1, ,3)这种调用也是错误的。

总之记住,缺省参数只能为最右边的若干个参数。

上一篇 下一篇

猜你喜欢

热点阅读