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);
  • 相关阅读:
    基于KNN的newsgroup 18828文本分类器的Python实现
    基于Bayes和KNN的newsgroup 18828文本分类器的Python实现
    C++笔试题
    一号店笔试题
    最长递增子序列
    雅虎2015校招--研究工程师
    百度2013校园招聘笔试题(答案整理) – 机器学习/数据挖掘工程师
    windows下Python shell代码自动补全
    windows下scrapy安装
    实验四
  • 原文地址:https://www.cnblogs.com/Lightfall/p/9952832.html
Copyright © 2011-2022 走看看