1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C++基础之函数的默认参数 什么是函数默认参数?

C++基础之函数的默认参数 什么是函数默认参数?

时间:2021-05-21 13:25:38

相关推荐

C++基础之函数的默认参数 什么是函数默认参数?

在C++中,定义函数时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的值。也就是说,调用函数时可以省略有默认值的参数。如果用户指定了参数的值,那么就使用用户指定的值,否则使用参数的默认值。

C++

所谓默认参数,指的是当函数调用中省略了实参时自动使用的一个值,这个值就是给形参指定的默认值。下面是一个简单的示例:

#include<iostream>using namespace std;//带默认参数的函数void func(int n, float b=1.2, char c='@'){cout<<n<<", "<<b<<", "<<c<<endl;}int main(){//为所有参数传值func(10, 3.5, '#');//为n、b传值,相当于调用func(20, 9.8, '@')func(20, 9.8);//只为n传值,相当于调用func(30, 1.2, '@')func(30);return 0;}

运行结果:

10, 3.5, #20, 9.8, @30, 1.2, @

本例定义了一个带有默认参数的函数 func(),并在 main() 函数中进行了不同形式的调用。为参数指定默认值非常简单,直接在形参列表中赋值即可,与定义普通变量的形式类似。

指定了默认参数后,调用函数时就可以省略对应的实参了。

默认参数除了使用数值常量指定,也可以使用表达式指定,例如:

float d = 10.8;void func(int n, float b=d+2.9, char c='@'){cout<<n<<", "<<b<<", "<<c<<endl;}

C++规定,默认参数只能放在形参列表的最后,而且一旦为某个形参指定了默认值,那么它后面的所有形参都必须有默认值。实参和形参的传值是从左到右依次匹配的,默认参数的连续性是保证正确传参的前提。

下面的写法是正确的:

void func(int a, int b=10, int c=20){}void func(int a, int b, int c=20){}

但这样写不可以:

void func(int a, int b=10, int c=20, int d){}void func(int a, int b=10, int c, int d=20){}

默认参数并非编程方面的重大突破,而只是提供了一种便捷的方式。在以后设计类时你将发现,通过使用默认参数,可以减少要定义的析构函数、方法以及方法重载的数量。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。