文章目录

  • 前言
  • 一、缺省参数是什么?
  • 二、缺省参数使用
    • 1.缺省参数的函数定义
    • 2.缺省参数的定义及声明
  • 总结

前言

一般情况下,函数调用时实参与形参的数目应该保持一致,为了更加方便使用函数,c++中允许使用缺省参数,此时实参和形参数目可以不相同。


一、缺省参数是什么?

缺省参数:指在函数定义时为形参设定缺省值(默认值)。

对于这种函数在调用时,对于缺省参数,可以给出实参值,也可以不给。如果给了实参,则按照实参传递给形参进行使用,如果不给出实参,则按缺省值进行调用。

二、使用步骤

1.缺省参数的函数调用

首先,缺省参数在定义时必须放在参数表的右侧,从右向左定义,不能跳着定义。即先定义所有的非缺省参数,在定义缺省参数。这是因为,在函数调用时,参数自左向右逐个匹配,当实参和形参个数不一致时只有这样才不会产生二义性。

void fun(int a,int b=10,int c=int(),int d=int{})//right 从右向左给缺省值
void fun(int a,int b=0,int c,int d=10)//errorvoid fun(int a,int b=10,int c=20){
cout<<"a="<<a<<"b="<<b<<"c="<<c<<endl;
}
int main()
{
fun(12);
fun(10,20);
fun(10,20,30);
fun(10,,30};//error
return 0;
}

注意:缺省参数并不一定得是常量表达式,可以是任意表达式,甚至可以通过函数定义。

2.缺省参数定义及说明

一般,缺省参数在头文件中的函数声明中指定,不要在函数的定义中声明。

如果头文件包含的函数声明一指定缺省参数值,函数定义一定不能再次指定缺省参数值。

代码如下(示例):

//A.h 头文件
void fun(int a,int b=14,int c=200);//A.cpp#include"A.h"
//void fun(int a,int b=10,int c=10);//error不能再给缺省值void fun(int a,int b,int c){
cout<<"a="<<a<<"b="<<b<<"c="<<c<<ednl;
}

如果缺省参数是个表达式的话,要是实参给了值则直接传给形参,要是没给则该表达式被求值。

#include <iostream>
using  namespace std;
int add1() {return 2;
}
void fun(int a, int b = add1() ){cout << "a=" << a << "b=" << b << endl;
}
int main()
{fun(10);//a=10b=2fun(10, 20);//a=10b=20return 0;
}

总结

以上就是缺省值的使用,使我们更加方便的调用函数。

c++缺省值 缺省参数相关推荐

  1. 绝不重新定义继承而来的缺省值参数

    绝不重新定义继承而来的缺省值参数 文章目录 绝不重新定义继承而来的缺省值参数 一.问题引入 二.结论 一.问题引入 在C++中,只能继承两种函数:虚(virtual)函数和非虚(non-virtual ...

  2. python 缺省参数_week04_python函数缺省值

    默认值的作用域def foo(xyz=[]): xyz.append(10) print(xyz) foo()#[10] foo()#[10, 10] 为什么第二次调用foo函数打印的是[10, 10 ...

  3. 函数参数缺省值/默认值

    一.基本概念 缺省值又叫默认值,指函数形参有默认值. 有缺省值的情况下,可以不写实参就调用函数. 例: void fun(int a = 12); 二.全部指定与部分指定 全部指定即形参全部都有默认值 ...

  4. c/c++函数参数的缺省值使用要点:

    c/c++函数参数的缺省值使用要点: 函数与缺省值用例: 声明: void func(int ivalue = 1, string str = "");//声明中给参数给了默认值 ...

  5. 14 PP配置-生产主数据-BOM相关-定义项目状态的缺省值

    业务背景:定义项目状态的缺省值 事务码:OS21 SPRO路径:SPRO->生产->基本数据->物料清单->常规数据->BOM 用途->定义项目状态的缺省值 第1步 ...

  6. 根据条件返回相应值 decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)...

    1 decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) 2 [功能]根据条件返回相应值 3 [参数]c1, c2, ...,cn,字符型/数值型/日期型,必须类型相同或 ...

  7. python缺省值_python函数缺省值

    random()函数 描述:random() 方法返回随机生成的一个实数,它在[0,1)范围内.语法: import randomrandom.random(); 注意:random()是不能直接访问 ...

  8. python缺失值与异常值处理_pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)...

    pandas学习(常用数学统计方法总结.读取或保存数据.缺省值和异常值处理) 目录 常用数学统计方法总结 读取或保存数据 缺省值和异常值处理 常用数学统计方法总结 count 计算非NA值的数量 de ...

  9. LightGBM源码阅读+理论分析(处理特征类别,缺省值的实现细节)

    前言 关于LightGBM,网上已经介绍的很多了,笔者也零零散散的看了一些,有些写的真的很好,但是最终总觉的还是不够清晰,一些细节还是懵懵懂懂,大多数只是将原论文翻译了一下,可是某些技术具体是怎么做的 ...

  10. c语言函数参数缺省,C++缺省参数和函数重载

    参数的缺省值 在C++中参数可以设置缺省值,设置了缺省值之后,这个参数在调用时可以省略. 注意:设置缺省值的参数只能是最后的几个参数.也就是说某一个参数一旦设置了缺省值,其后而的参数也必须设置缺省值. ...

最新文章

  1. ICCV 2019 | 加一个任务路由让数百个任务同时跑起来,怎么做到?
  2. html5 颜色弹窗 位置,HTML5之placeholder属性以及如何更改placeholder属性中文字颜色大小位置...
  3. 反序列化出现异常:SerializationException 在分析完成之前就遇到流结尾
  4. 阿里P7工作总结:Spring MVC的工作原理,看完受益匪浅
  5. Atom markdown .md 编写格式技巧
  6. Promise-js异步加载解决方案
  7. android刷新时的圆形动画_【Android】圆形揭露动画
  8. 【java】Applet窗口小程序的应用
  9. 看图识WAF-搜集常见WAF拦截页面
  10. 163接收邮件服务器pop3,pop3设置(163邮箱imap pop3设置)
  11. 数字交通灯设计(Multisim仿真+PCB实物)
  12. SpringBoot 2.X Redis Jackson 序列化配置
  13. [JZOJ6347] 【NOIP2019模拟2019.9.8】ZYB玩字符串
  14. 为什么你招不到合适的猎头顾问?浅谈猎企内部招聘
  15. Windows未能启动,状态:0xc000014c的解决方法
  16. 师范大学计算机专业研究生,2019考研调剂:福建师范大学计算机类学硕研究生调剂生...
  17. 计算机组装和拆卸的说法错误的是,《计算机组装与维护》选修试卷2009-2010-1A
  18. linux下怎样安装openmpi
  19. Android 智能手机开发概述
  20. php 访问服务器上图片不显示,php显示云服务器上图片不显示

热门文章

  1. prepareStatement的批量处理数据
  2. 服务器pbs傻瓜操作
  3. 修复计算机之后东西还在吗,硬盘分区表修复后文件还在吗
  4. 几点减几点怎么列算式_时间加减法怎么算
  5. 从博弈论看高薪行业岗位
  6. SSRF利用协议中的万金油——Gopher
  7. 【BZOJ 4011】[HNOI2015]落忆枫音
  8. pppoe拨号远程计算机,PPPoE常见拨号错误代码分析及解决办法
  9. c语言运行时电脑蓝屏,Windows系统蓝屏时系统都在后台做了什么?-系统蓝屏
  10. 湖南省中职学业水平考试复习试题(语文)