c++缺省值 缺省参数
文章目录
- 前言
- 一、缺省参数是什么?
- 二、缺省参数使用
- 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++缺省值 缺省参数相关推荐
- 绝不重新定义继承而来的缺省值参数
绝不重新定义继承而来的缺省值参数 文章目录 绝不重新定义继承而来的缺省值参数 一.问题引入 二.结论 一.问题引入 在C++中,只能继承两种函数:虚(virtual)函数和非虚(non-virtual ...
- python 缺省参数_week04_python函数缺省值
默认值的作用域def foo(xyz=[]): xyz.append(10) print(xyz) foo()#[10] foo()#[10, 10] 为什么第二次调用foo函数打印的是[10, 10 ...
- 函数参数缺省值/默认值
一.基本概念 缺省值又叫默认值,指函数形参有默认值. 有缺省值的情况下,可以不写实参就调用函数. 例: void fun(int a = 12); 二.全部指定与部分指定 全部指定即形参全部都有默认值 ...
- c/c++函数参数的缺省值使用要点:
c/c++函数参数的缺省值使用要点: 函数与缺省值用例: 声明: void func(int ivalue = 1, string str = "");//声明中给参数给了默认值 ...
- 14 PP配置-生产主数据-BOM相关-定义项目状态的缺省值
业务背景:定义项目状态的缺省值 事务码:OS21 SPRO路径:SPRO->生产->基本数据->物料清单->常规数据->BOM 用途->定义项目状态的缺省值 第1步 ...
- 根据条件返回相应值 decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)...
1 decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) 2 [功能]根据条件返回相应值 3 [参数]c1, c2, ...,cn,字符型/数值型/日期型,必须类型相同或 ...
- python缺省值_python函数缺省值
random()函数 描述:random() 方法返回随机生成的一个实数,它在[0,1)范围内.语法: import randomrandom.random(); 注意:random()是不能直接访问 ...
- python缺失值与异常值处理_pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)...
pandas学习(常用数学统计方法总结.读取或保存数据.缺省值和异常值处理) 目录 常用数学统计方法总结 读取或保存数据 缺省值和异常值处理 常用数学统计方法总结 count 计算非NA值的数量 de ...
- LightGBM源码阅读+理论分析(处理特征类别,缺省值的实现细节)
前言 关于LightGBM,网上已经介绍的很多了,笔者也零零散散的看了一些,有些写的真的很好,但是最终总觉的还是不够清晰,一些细节还是懵懵懂懂,大多数只是将原论文翻译了一下,可是某些技术具体是怎么做的 ...
- c语言函数参数缺省,C++缺省参数和函数重载
参数的缺省值 在C++中参数可以设置缺省值,设置了缺省值之后,这个参数在调用时可以省略. 注意:设置缺省值的参数只能是最后的几个参数.也就是说某一个参数一旦设置了缺省值,其后而的参数也必须设置缺省值. ...
最新文章
- ICCV 2019 | 加一个任务路由让数百个任务同时跑起来,怎么做到?
- html5 颜色弹窗 位置,HTML5之placeholder属性以及如何更改placeholder属性中文字颜色大小位置...
- 反序列化出现异常:SerializationException 在分析完成之前就遇到流结尾
- 阿里P7工作总结:Spring MVC的工作原理,看完受益匪浅
- Atom markdown .md 编写格式技巧
- Promise-js异步加载解决方案
- android刷新时的圆形动画_【Android】圆形揭露动画
- 【java】Applet窗口小程序的应用
- 看图识WAF-搜集常见WAF拦截页面
- 163接收邮件服务器pop3,pop3设置(163邮箱imap pop3设置)
- 数字交通灯设计(Multisim仿真+PCB实物)
- SpringBoot 2.X Redis Jackson 序列化配置
- [JZOJ6347] 【NOIP2019模拟2019.9.8】ZYB玩字符串
- 为什么你招不到合适的猎头顾问?浅谈猎企内部招聘
- Windows未能启动,状态:0xc000014c的解决方法
- 师范大学计算机专业研究生,2019考研调剂:福建师范大学计算机类学硕研究生调剂生...
- 计算机组装和拆卸的说法错误的是,《计算机组装与维护》选修试卷2009-2010-1A
- linux下怎样安装openmpi
- Android 智能手机开发概述
- php 访问服务器上图片不显示,php显示云服务器上图片不显示