【C++】函数缺省参数的作用
2016-03-03 13:15
169 查看
用法: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的地方可以进行颜色设置。
这就是缺省参数的使用意义,方便系统的扩展。
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的地方可以进行颜色设置。
这就是缺省参数的使用意义,方便系统的扩展。
相关文章推荐
- C#、C++、JAVA中虚函数和抽…
- 【VC++ 程序共享】 游戏…
- 玩具侠-C语言学习之程序运行及内存存储(1)
- C++虚函数及虚函数表解析
- 算法代码实现之选出第k小元素、中位数、最小的k个元素(线性复杂度),C/C++实现
- 编译AMQP-CPP
- 《Effective C++》 Rule 40:明智而审慎地使用多重继承
- C语言数组与指针(四)
- C++代码设计:向Java借鉴Builder模式塈OpenCL内核代码编译
- 【VS开发】C/C++预编译命令
- 使用命名空间、头文件和实现文件
- C++ 虚函数表解析
- mysql-connector-c++ +vs2013x64 编译
- Lists the predefined ANSI/ISO C99 and Microsoft C++ implementation preprocessor macros.
- Effective C++读书笔记 条款03:尽可能使用const
- PIC C语言编程_PICC中变量修饰关键词
- C语言面试题(1)
- C++学习之map类型(以后可能会用到)
- 快速排序
- 【转】C++ 内存分配(new,operator new)详解