zoukankan      html  css  js  c++  java
  • C++默认实参

    某些函数有这样一种形参,在函数的很多次调用中它们都被赋予一个相同的值,此时,我们把这个反复出现的值称为函数的默认实参。调用含有默认实参的函数时,可以包含该实参,也可以省略该实参。

    例如定义一个函数screen表示窗口的内容:

    typedef string::size_type sz;
    string screen(sz ht = 24, sz wid = 80, char backgrnd = ' ');

    我们可以为一个或多个形参定义默认值,但是需要注意:一旦某个形参被赋予了默认值,它后面的所有形参都必须有默认值

    比如 string screen(sz, sz = 80, char = ' '); 这样的代码是正确的,但是 string screen(sz = 24, sz, char); 就是错误的。

    我们可以提供实参覆盖默认值,但是要想覆盖后面的默认实参,必须给前面的形参也提供默认值,而不能跳过,比如:

     string window = screen(, , '?'); 

    是错误的,而下列两行都是正确的:

     string window = screen(20, 20, '?'); 
     string window = screen(20); //等价于screen(20, 80, ' ')

      

    我们还可以多次声明同一个函数,后续声明能且只能给之前那些没有默认值的形参添加默认实参,而且该形参的右侧的所有形参都必须有默认值。假如给定

    string screen(sz, sz, char = ' ');

    我们不能修改一个已经存在的默认值

    string screen(sz, sz, char = '*');//错误:重复声明

    但是可以按照如下形式添加默认实参:

    string screen(sz = 23, sz = 80, char);
  • 相关阅读:
    js字符串使用占位符拼接
    C#解析json字符串总是多出双引号的原因分析及解决办法
    JS 正则验证字符串中是否含有数字
    不错的MVC文章
    Js 更换html同一父元素下子元素的位置
    团队任务个人博客--20160426
    《构建之法》阅读笔记3
    团队任务个人博客20160425
    团队任务个人博客20160424
    软件工程进度条-第八周
  • 原文地址:https://www.cnblogs.com/Lightfall/p/9952832.html
Copyright © 2011-2022 走看看