C++默认参数(函数参数的默认值)
在 C++ 中,声明一个函数时,可以为函数的参数指定默认值。当调用有默认参数值的函数时,可以不写出参数,这时就相当于以默认值作为参数调用该函数。
例如:
不仅可以用常数,还可以用任何有定义的表达式作为参数的默认值。例如:
函数参数的默认值可以像上面的 Function1 那样写在声明函数的地方,也可以像 Function2 那样写在定义函数的地方,但是不能在两个地方都写。
函数默认参数所带来的好处是使程序的可扩充性更好,即当程序需要增加新功能时,改动可以尽可能少。
试想下面这种情况。一个即将编写完成的绘图程序,其中有一个画圆的函数 Circle,画出来的圆都是黑色的,这时希望增加画彩色圆的功能,于是就需要在 Circle 函数中增加一个 int 型的 color 参数,用来表示颜色。
但是原来的程序中可能大多数调用 Circle 函数的地方依然只是画个黑色的圆就可以了,只有少数几个地方需要改成画彩色的圆。此时,如果要找出所有调用 Circle 函数的语句并补上颜色参数,会十分烦琐。
而有了函数参数默认值的机制,则只需为 Circle 函数的新参数指定默认值 0(假定 0 代表黑色),然后找出少数几个调用 Circle 函数画彩色圆的地方,补上颜色参数即可。
实践中这种情况 是经常发生的。
例如:
void Function1(int x=20); //函数的声明中,指明参数 x 的默认值是 20 //... Function1(); //正确的调用语句,等效于 Function1(20);
不仅可以用常数,还可以用任何有定义的表达式作为参数的默认值。例如:
int Max(int m, int n); int a, b; void Function2(int x, int y=Max(a,b), int z=a*b){ //... } Function2(4); //正确,等效于 Function2(4, Max(a,b), a*b); Function2(4, 9); //正确,等效于 Function2(4,9 , a*b); Function2(4, 2, 3); //正确 Function2(4, ,3); //错误!这样的写法不允许,省略的参数一定是最右边连续的几个
函数参数的默认值可以像上面的 Function1 那样写在声明函数的地方,也可以像 Function2 那样写在定义函数的地方,但是不能在两个地方都写。
函数默认参数所带来的好处是使程序的可扩充性更好,即当程序需要增加新功能时,改动可以尽可能少。
试想下面这种情况。一个即将编写完成的绘图程序,其中有一个画圆的函数 Circle,画出来的圆都是黑色的,这时希望增加画彩色圆的功能,于是就需要在 Circle 函数中增加一个 int 型的 color 参数,用来表示颜色。
但是原来的程序中可能大多数调用 Circle 函数的地方依然只是画个黑色的圆就可以了,只有少数几个地方需要改成画彩色的圆。此时,如果要找出所有调用 Circle 函数的语句并补上颜色参数,会十分烦琐。
而有了函数参数默认值的机制,则只需为 Circle 函数的新参数指定默认值 0(假定 0 代表黑色),然后找出少数几个调用 Circle 函数画彩色圆的地方,补上颜色参数即可。
实践中这种情况 是经常发生的。
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频