用法:void func(int param1, int param2 = 1, int param = 3) {}

func(10); //等同于func(10, 1 , 3)

func(10,8); //等同于func(10, 8, 3)

func(10, , 3);//编译错误,只能最右边的连续若干个参数缺省

意义:函数参数可缺省的目的在于提高成虚的可扩展性。

例如在一个系统中,有一个绘制圆形的方法drawCircle(int radius, int x, int y), 其有三个参数,分别代表了圆的半径,圆心的坐标,这个方法在系统的多处被使用。

现在需要给这个方法加一个绘制颜色的参数,之前的圆形默认颜色都是黑色,并且不需要进行颜色修改。有两种方法可以解决这个问题:

1、直接修改为drawCircle(int radius, int x, int y, int color),并且修改每一处使用到该方法的地方;

2、将颜色设为缺省参数,drawCircle(int radius, int x, int y, int color=BLACK);

现分析两种方法的优缺点,第一种方法很明显工作量大并且意义不大,因为大部分使用了该方法的地方不需要进行颜色设置,可以说是出力不讨好。而第二种方法,并不需要去修改之前已经使用过的地方,因为颜色参数默认值为黑色,而在未来要使用drawCircle的地方可以进行颜色设置。

这就是缺省参数的使用意义,方便系统的扩展。

转载于:https://www.cnblogs.com/puyangsky/p/5238188.html

【C++】函数缺省参数的作用相关推荐

  1. C语言 函数缺省参数 - C语言零基础入门教程

    目录 一.函数简介 1.函数声明 2.函数定义 3.函数调用 4.函数形参和实参 二.函数缺省参数 1.函数全缺省参数 2.函数半缺省参数 三.注意事项 四.猜你喜欢 零基础 C/C++ 学习路线推荐 ...

  2. 第一周 从C走进C++ 008 函数缺省参数

    1. 函数的缺省参数  C++中,定义函数的时候可以让最右边的连续若干个参数有缺省值,那么调用函数的时候,若相应位置不写参数,参数就是缺省值. void func( int x1, int x2 = ...

  3. 缺省参数-指定函数缺省参数的默认值

    def print_info(name, gender=True):""":param name: 班上同学的姓名:param gender: True 男生 False ...

  4. C++ | 详细介绍缺省参数的作用

    文章目录 一.前言 1.缺省参数概念 2.缺省参数的使用规则 二.全缺省参数[备胎是如何使用的♿] 1.四种实参传递方式说明 2.疑难细究 三.半缺省参数[⭐] 1.错误用法示范 2.正确用法示范

  5. python-matplotlib中的plt.text函数,wrap参数的作用

    wrap其实是换行的意思,默认是不换行的(默认值为False). 这个参数在文本比较长的时候才有用. 具体参见下面的代码 import matplotlib.pyplot as pltfig = pl ...

  6. [python] 函数的缺省参数和注意事项

    所谓缺省参数,在定义函数时,可以给某个参数指定一个默认值,具有默认值的参数就叫做缺省参数.调用函数时,如果没有传入缺省参数的值,则在函数内部使用定义函数时指定的参数默认值. 一.列表的排序方法明确缺省 ...

  7. C语言 函数不定长参数 - C语言零基础入门教程

    目录 一.前言 二.函数不定长参数简介 1.va_start 2.va_arg 3.va_end 三.自定义不定长参数的函数 1.va_start/va_arg/va_end 案例一 2.va_sta ...

  8. Python学习:定义函数的默认参数和可变参数

    一.默认参数 定义函数的时候,还可以有默认参数. 例如Python自带的 int() 函数,其实就有两个参数,我们既可以传一个参数,又可以传两个参数: >>> int('123') ...

  9. python基础 python函数 函数概念 函数的多种参数 多种调用参数 装包 解包 函数代码块 函数的返回值

    python基础 python函数 函数概念 函数的多种参数 多种调用参数 装包 解包 函数代码块 函数的返回值 一 .函数概念 函数是根据需要,将代码打包为代码块, 每一个代码块就可以封装为一个函数 ...

最新文章

  1. win10每次开机都会自检系统盘(非硬件故障)——解决方案2019.07.12
  2. 简明python教程txt-Python:将 list 写入一个 txt 文件四种方法
  3. Online Learning场景下实时新闻热点机器学习训练实践
  4. apache-tomcat-7.0.54安装
  5. 李宏毅机器学习(二)自注意力机制
  6. TV3是马来西亚第一家商营电视台
  7. 调账成功 对账失败处理流程反思
  8. access窗体独立运行_由浅入深学习网络设备模拟器HCL 第一篇 安装与运行
  9. Channel Robot The Modernist 2.0 Mac(现代木琴音源)
  10. Linux下多线程调试以及查看信息
  11. OFFICE技术讲座:关于坐标、位置的术语说明
  12. 中文(语音结果)的文本纠错综述 Chinese Spelling Check
  13. JVM中的monitor
  14. java docx 文档不可编辑、复制
  15. python——文件处理
  16. 穆利堂推荐机会来了你做好准备了吗?怎么让机会找到你?
  17. iOS 上的FlexBox布局
  18. Ribbon负载均衡及Feign消费者调用服务
  19. Python语言程序设计第二章编程题
  20. 期货交易中期货公司和柜台的基础知识

热门文章

  1. Boost:交互式地调整2D图像大小并使用OpenGL显示它
  2. Boost:字符串的RLE压缩的测试程序
  3. ITK:使用Otsu阈值图像
  4. VTK:Medical之MedicalDemo2
  5. OpenCV GrabCut分割的实例(附完整代码)
  6. Qt Creator将应用程序部署到QNX Neutrino设备
  7. OpenGL键盘消息实例
  8. C++ semi implicit euler半隐式向后欧拉法解算常微分方程(附完整源码)
  9. C++实现connected component连通分量(附完整源码)
  10. 怎么把线稿提取出来_ps提取线稿教程(ps怎么把图片的线稿弄出来)