文章目录
- 前言
- 一、缺省参数是什么?
- 二、缺省参数使用
- 1.缺省参数的函数定义
- 2.缺省参数的定义及声明
- 总结
前言
一般情况下,函数调用时实参与形参的数目应该保持一致,为了更加方便使用函数,c++中允许使用缺省参数,此时实参和形参数目可以不相同。
一、缺省参数是什么?
缺省参数:指在函数定义时为形参设定缺省值(默认值)。
对于这种函数在调用时,对于缺省参数,可以给出实参值,也可以不给。如果给了实参,则按照实参传递给形参进行使用,如果不给出实参,则按缺省值进行调用。
二、使用步骤 1.缺省参数的函数调用首先,缺省参数在定义时必须放在参数表的右侧,从右向左定义,不能跳着定义。即先定义所有的非缺省参数,在定义缺省参数。这是因为,在函数调用时,参数自左向右逐个匹配,当实参和形参个数不一致时只有这样才不会产生二义性。
void fun(int a,int b=10,int c=int(),int d=int{})//right 从右向左给缺省值
void fun(int a,int b=0,int c,int d=10)//error
void fun(int a,int b=10,int c=20){
cout<<"a="<
注意:缺省参数并不一定得是常量表达式,可以是任意表达式,甚至可以通过函数定义。
2.缺省参数定义及说明一般,缺省参数在头文件中的函数声明中指定,不要在函数的定义中声明。
如果头文件包含的函数声明一指定缺省参数值,函数定义一定不能再次指定缺省参数值。
代码如下(示例):
//A.h 头文件
void fun(int a,int b=14,int c=200);
//A.cpp
#include"A.h"
//void fun(int a,int b=10,int c=10);//error不能再给缺省值
void fun(int a,int b,int c){
cout<<"a="<
如果缺省参数是个表达式的话,要是实参给了值则直接传给形参,要是没给则该表达式被求值。
#includeusing namespace std; int add1() { return 2; } void fun(int a, int b = add1() ){ cout << "a=" << a << "b=" << b << endl; } int main() { fun(10);//a=10b=2 fun(10, 20);//a=10b=20 return 0; }
总结
以上就是缺省值的使用,使我们更加方便的调用函数。



