• C++ (带有默认参数的函数参数)缺省函数参数


    缺省参数?
    在C++中,允许实参的个数与形参的个数不同。在声明函数原型时,为一个或者多个形参指定默认值,以后调用这个函数时,若省略某一个实参,c++则自动的以默认值作为相应参数的值。

    实列说明:
    #include<iostream>
    using namespace std;

    int add(int x=4,int y=7)
    {
    return x+y;
    }
    int main()
    {
    cout<<add(3,6)<<endl;
    cout<<add(3)<<endl;
    cout<<add()<<endl;
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    运行结果:

    解析:
    1、程序执行cout<<add(3,6)<<endl;语句时,因为函数add(3,6)传入了两个实参,与形参的个数一值,所以此时x=3,y=6。
    2、程序执行cout<<add(3)<<endl;语句时,因为函数add(3)只传入了一个实参,与形参的个数不一值,所以此时先按从左到右的顺序将实参和形参相结合,所以x=3,又因为实参个数只有一个,于是另外一个形参取默认值,所以y=7。
    3、程序执行cout<<add()<<endl;语句时,因为函数add()没有传入实参,所以此时所有的形参都取默认值,于是此时x=4,y=7。

    注意:
    1、指定默认值的参数必须放在形参列表中的最右端。 列如:

    int func(int i,int j=5,int k);
    1
    这样是错误的。应该改为:

    int func(int i,int k,int j=5);
    1
    2、在函数调用时,若个实参省略,则其后的所有实参都应该省略。不允许某个实参省略后,后面的实数再指定参数。 列如:

    add(,7);
    1
    这是错误的。

    3、只需要在函数声明和函数定义中一个给出默认值即可。
    --------------------- 

  • 相关阅读:
    配置secureCRT
    LINUX的网口绑定(bond)
    背包形动态规划 fjutoj2375 金明的预算方案
    背包形动态规划 fjutoj1380 Piggy-Bank
    背包形动态规划 fjutoj2347 采药
    树形动态规划 fjutoj-2392 聚会的快乐
    树形动态规划 fjutoj-2131 第四集,聚集城市
    andriod开发--使用Http的Get和Post方式与网络交互通信
    线段树复合标记
    图论之拓扑排序 poj 2367 Genealogical tree
  • 原文地址:https://www.cnblogs.com/ly570/p/10954603.html
Copyright © 2020-2023  润新知