第一章C++对C的扩展(Externsion)--(5)默认参数
来源:互联网 发布:人工智能的应用有哪些 编辑:程序博客网 时间:2024/06/05 00:29
5.默认参数(default parameters)
通常情况下,函数在调用时,形参从实参那里取得值。对于多次调用用一函数同一实参时,C++给出了更简单的处理办法。给形参以默认值,这样就不用从实参那里取值了。
5.1.示例
单个参数
#include <iostream>#include <ctime>using namespace std;void weatherForcast(char * w="sunny"){ time_t t = time(0); char tmp[64]; strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A ",localtime(&t) ); cout<<tmp<< "today is weahter "<<w<<endl;}int main(){ //sunny windy cloudy foggy rainy weatherForcast(); weatherForcast("rainny"); weatherForcast(); return 0;}
多个参数
float volume(float length, float weight = 4,float high = 5){ return length*weight*high;}int main(){ float v = volume(10); float v1 = volume(10,20); float v2 = volume(10,20,30); cout<<v<<endl; cout<<v1<<endl; cout<<v2<<endl; return 0;}
5.2.规则
- 1 默认的顺序,是从右向左,不能跳跃。
- 2 函数声明和定义一体时,默认认参数在定义(声明)处。声明在 前,定义在后,默认参数在声明处。
- 3 一个函数,不能既作重载,又作默认参数的函数。当你少写一个参数时,系统 无法确认是重载还是默认参数。
void print(int a){}void print(int a,int b =10){}int main(){ print(10); return 0;}
main.cpp:16: error: call of overloaded 'print(int)' is ambiguous print(10);
0 0
- 第一章C++对C的扩展(Externsion)--(5)默认参数
- 第一章 C++对C的扩展(Externsion)--(1)类型增强
- 第一章C++对C的扩展(Externsion)--(3)函数重载
- 第一章C++对C的扩展(Externsion)--(6)引用
- 第一章C++对C的扩展(Externsion)--(7)new/delete
- 第一章C++对C的扩展(Externsion)--(2)输入与输出
- 第一章C++对C的扩展(Externsion)--(4)操作符重载
- C++对C扩展之默认参数(default)
- C++对C的函数拓展 - 默认参数
- gcc对C语言的扩展:函数参数构造
- C#: 方法的默认参数
- C++对C的扩展
- GNU对C的扩展
- C++对c的扩展
- C++对C的扩展
- C++对C的扩展
- GNU C 对标C的扩展
- [C++]默认参数
- 自定义控件(13)---View绘制的Padding、Margin
- oc 之文件操作
- requestWindowFeature使用详解
- Inheritance in JavaScript 继承
- UIScrollView配合定时器自动循环滚动
- 第一章C++对C的扩展(Externsion)--(5)默认参数
- 微信支付iOS
- 更新数据表中的字段
- popen,argc,argv, cprintf, snprintf,strcmp,write,read,strspn,strcspn,
- Struts2系统学习(12)自定义拦截器
- 点滴文档
- 使用Guid做主键和int做主键性能比较
- ubuntu命令
- ubuntu 下 eclipse 中文输入