zoukankan      html  css  js  c++  java
  • 第7课 函数参数的扩展

      C++中可以在函数声明时为参数提供一个默认值,当函数调用时没有提供参数的值,则使用默认值:

    函数的前向声明中提供了参数的默认值后,在函数的定义中就没有必要提供参数的默认值了。

    参数的默认值必须在函数声明中指定

    问题:

      函数定义中是否可以出现参数的默认值?当函数声明和定义中的参数默认值不同时会发生什么?

     示例程序如下:声明时和定义时的默认参数不一样

    编译结果如下:

    因此,在定义的时候不给出默认值就可以了。只在声明的时候给出默认值。

    如果在声明时不给默认参数,而是在定义时给默认参数,如下所示:

    编译报错:

    函数默认参数的规则:

    在C++中可以为函数提供占位参数:

    C++为什么要提供这种特性呢?这是为了兼容C程序中不规范的写法:

     兼容C语言中不规范的写法例如:C语言中定义了int f(),调用时用的是f(1,2),这在C语言中可以编译过去,但是在C++中是编译不过去的,为了能编译过去,也就是兼容以前的C程序,因此,提供了占位符这个特性。

     将占位符和默认参数联合使用就可以兼容C语言中的不规范写法了,如下:

    小结:

      C++中支持函数参数的默认值

      如果函数调用时没有提供参数值,则使用默认值

      参数的默认值必须从右向左提供

      函数调用时使用了默认值,则后续参数必须使用默认值

      C++中支持占位参数,用于兼容C语言中的不规范写法

  • 相关阅读:
    Sqlserver中的触发器
    Memcache在.Net中的使用
    Sqlserver中的储存过程
    Ado.NET基础必备
    MVC项目报错 ”基础提供程序在 Open 上失败”
    【Darwin学习笔记】之获取系统处理器数量的方法
    Wireshark抓包工具--TCP数据包seq ack等解读
    TCP:WireShark分析,序列号Seq和确认号Ack
    【Darwin学习笔记】之TaskThread
    boost::asio::io_context类
  • 原文地址:https://www.cnblogs.com/wanmeishenghuo/p/9520412.html
Copyright © 2011-2022 走看看