zoukankan      html  css  js  c++  java
  • 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、只需要在函数声明和函数定义中一个给出默认值即可。
    --------------------- 

  • 相关阅读:
    软件技术文档撰写要求
    UML需求分析步骤实例解析
    sql 操作重复数据集合
    cookie无法读取的问题
    软件开发中,这些文档你用到了吗?
    软件测试报告[样本]
    一个软件设计的全过程(基于UML)
    命令 状态 职责链 三种模式之间的异同
    PHP的MVC实现(3)
    怎么样整理有用的资料?
  • 原文地址:https://www.cnblogs.com/ly570/p/10954603.html
Copyright © 2011-2022 走看看