c++函数重载和形参默认值

函数重载和形参默认值

函数重载


  1. 相同功能但 不同形参类型 或 数量 的同名函数创建(这里的不同形参类型指两个同名函数中至少存在一个形参占位中的类型对应不一致),函数重载是编译时的多态

  2. 不同形参类型可定义重载

    void fun(int a);
    void fun(double a);
    
  3. 不同参数数量可定义重载

    void fun(int a, int b);
    void fun(int a, int b, int c);
    
  4. 不同形参类型且不同形参数量可定义重载

    void fun(int a);
    void fun(double a, double b);
    
  5. 不同参数类型传入顺序可定义重载,但并不建议这样做,当传入的参数需要进行隐式转换的时候就会出现错误,如下方传入两个int

    void fun(int a, double b);
    void fun(double a, int b);
    
  6. 仅返回值类型不同不可定义重载

    void fun(int a);
    int fun(int a); //×
    

:不同功能不应该定义为重载

形参默认值


  1. 当参数传递不够时采用默认值作为参数

  2. 形参默认值的声明位置

    • 一般在函数的声明中给出,不在定义中给出
    • 仅当函数体定义在所有调用之前时可以在函数定义中给出(不常用)
    void fun(int a = 0, int b = 5);
    //...
    void fun(int a, int b){
        //...
    }
    
  3. 给出默认值的形参右侧的形参也必须给出默认值,即只能从右向左定义形参默认值

    void fun(int a, int b = 0); // √
    void fun(int a = 5, int b); // ×
    void fun(int a, int b = 0, int c); // ×
    
  4. 全局声明和局部声明可以分别给出不同默认值(局部屏蔽全局),但同一作用域下不可重复给出默认形参(如在全局声明和全局定义中同时给出)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值