C++缺省参数

C++缺省参数

本文详细讲解了C++中缺省参数的使用和一些注意事项。

缺省参数

  • 缺省参数:缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参。(有些地方把缺省参数也叫默认参数)

    下面举例:

void Print(int a=10){
    cout<<a<<endl;
}
int main()
{
    int x=20;
    Print(x);	//打印结果:20
    Print();	//打印结果:10
	return 0;
}

缺省值的使用

  • 当一个函数有在头文件声明的时候,缺省值只能够在头文件的函数声明中提供,在定义函数内容时提供是非法的,程序会报错重复提供默认参数。例如:

    void Print(int a=1,int b=2,int c=3);//头文件中的函数声明
    //非法定义如下:
    void Print(int a=1,int b=2,int c=3){
        cout<<a<<' '<<b<<' '<<c;
    }
    //正确定义如下:
    void Print(int a,int b,int c){
         cout<<a<<' '<<b<<' '<<c;
    }
    
    
  • 当有多个变量的函数使用缺省参数可以省略全部,也可以省略部分。

    void Print(int a=1,int b=2,int c=3){
    	cout<<a<<' '<<b<<' '<<c;
    }
    int main()
    {
        int x=10,y=20,z=30;
        Print(x,y,z);	//打印结果10 20 30
        Print(x,y);		//打印结果10 20 3	等效Print(x,y,c)
        Print(x);		//打印结果10 2 3		等效Print(x,b,c)
        Print();		//打印结果1 2 3		等效Print(a,b,c)
    	return 0;
    }
    
  • 注意在声明函数的时候只能够从右往左依次提供缺省值,不一定要提供所有的值,但是不能够跳跃提供,例如:

    void Print(int a,int b=2int c=3);//合法的函数声明
    void print(int a=2,int b,int c=3);//非法的函数声明
    
  • 注意在主函数中调用函数的时候,传参只能够从左往右依次提供实参,无法跳跃传参

    void Print(int a,int b=20,int c=30){
    	cout<<a<<' '<<b<<' '<<c;
    }
    int main(){
        Print(1,2,3);	//合法的
        Print(1,2);		//合法的
        Print(,2,3);	//非法的
        return 0;
    }
    
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值