C++ (带有默认参数的函数参数)缺省函数参数
缺省参数?
在C++中,允许实参的个数与形参的个数不同。在声明函数原型时,为一个或者多个形参指定默认值,以后调用这个函数时,若省略某一个实参,c++则自动的以默认值作为相应参数的值。
实列说明:
#include<iostream>
using namespace std;
int add(int x=4,int y=7)
{
return x+y;
}
int main()
{
cout<<add(3,6)<<endl;
cout<<add(3)<<endl;
cout<<add()<<endl;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
运行结果:
解析:
1、程序执行cout<<add(3,6)<<endl;语句时,因为函数add(3,6)传入了两个实参,与形参的个数一值,所以此时x=3,y=6。
2、程序执行cout<<add(3)<<endl;语句时,因为函数add(3)只传入了一个实参,与形参的个数不一值,所以此时先按从左到右的顺序将实参和形参相结合,所以x=3,又因为实参个数只有一个,于是另外一个形参取默认值,所以y=7。
3、程序执行cout<<add()<<endl;语句时,因为函数add()没有传入实参,所以此时所有的形参都取默认值,于是此时x=4,y=7。
注意:
1、指定默认值的参数必须放在形参列表中的最右端。 列如:
int func(int i,int j=5,int k);
1
这样是错误的。应该改为:
int func(int i,int k,int j=5);
1
2、在函数调用时,若个实参省略,则其后的所有实参都应该省略。不允许某个实参省略后,后面的实数再指定参数。 列如:
add(,7);
1
这是错误的。
3、只需要在函数声明和函数定义中一个给出默认值即可。
---------------------
最新文章
- Android知识——ViewHolder的作用与用法
- git之install
- Oracle中的null
- Wordpress编辑器(Tinymce)在Chrome中动态修改图片大小
- html 特殊字符 fmt table A
- 标准盒模型与ie盒模型
- Android中两种设置全屏的方法
- ThreadPoolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别
- [教程] Windows Server 2008 R2架设SMTP服务器发送邮件教程
- ECshop 二次开发模板教程4
- windows进程的创建方法
- HFile文件解析异常解决
- Java 微信登录授权后获取微信用户信息昵称乱码问题解决
- Mysql笔试题(二)
- awk统计文本里某一列重复出现的次数
- MySQL--MHA与GTID
- 为什么express中打开服务端只用listen即可
- vue的图片路径,和背景图片路径打包后错误解决
- CentOS systemctl命令
- 20155318 《网络攻防》Exp5 MSF基础应用
热门文章
- [POJ2104] 区间第k大数 [区间第k大数,可持久化线段树模板题]
- 了解一下JAVA中的NIO模块
- [bzoj1941][Sdoi2010]Hide and Seek_KD-Tree
- PHP array_intersect()
- keras 与tensorflow 混合使用
- 有趣的linux shell 命令, 跑马车
- LeetCode——Valid Number
- 一个简单的JS日期挂历脚本
- Java 发送短信
- Cash Machine(多重背包)