C++函数默认参数 详解
C++中允许为函数提供默认参数,又名缺省参数。
使用默认参数时的注意事项:
① 有函数声明(原型)时,默认参数可以放在函数声明或者定义中,但只能放在二者之一
double sqrt(double f = 1.0); //函数声明 double sqrt(double f) //函数定义 { // .... }
② 没有函数(原型)时,默认参数在函数定义时指定.
//没有 函数声明 double sqrt(double f = 1.0) //函数定义
③ 在具有多个参数的函数中指定默认值时,默认参数都必须出现在不默认参数的右边,一旦某个参数开始指定默认值,它右边的所有参数都必须指定默认值.
也就是说,函数声明时,必须按照从右向左的顺序,依次给与默认值。
int f (int i1, int i2 = 2, int i3 = 3); // 正确 int g (int i1, int i2 = 2, int i3); // 错误, i3未指定默认值 int h (int i1 = 1, int i2, int i3 = 3); // 错误, i2未指定默认值
④ 在调用具有默认参数的函数时, 若某个实参默认,其右边的所有实参都应该默认。
也就是说,函数调用传参时,必须按照从左向右的顺序,依次赋值。
//例如, 一个函数声明如下 int f(int i1 = 1, int i2 =2, int i3 = 3); //调用函数 f() f(); //正确, i1=1, i2=2, i3=3 f(3); //正确, i1=3, i2=2, i3=3 f(2, 3); //正确, i1=2, i2=3, i3=3 f(4, 5, 6); //正确, i1=4, i2=5, i3=6 f(, 2, 3); //错误, i1默认,其右边的i2和i3没有默认
---------------------------------------------------------------------------------------------------------
参考资料:
<<C++面向对象程序设计(第二版)>>
http://www.cnblogs.com/graphics/archive/2010/07/15/1778291.html
江湖很大,你我相遇在此有一定缘分,可以考虑加个QQ群聊聊人生,技术离不开生活,生活离不开聊聊。
.
/************* 社会的有色眼光是:博士生、研究生、本科生、车间工人; 重点大学高材生、普通院校、二流院校、野鸡大学; 年薪百万、五十万、五万; 这些都只是帽子,可以失败千百次,但我和社会都觉得,人只要成功一次,就能换一顶帽子,只是社会看不见你之前的失败的帽子。 当然,换帽子决不是最终目的,走好自己的路就行。 杭州.大话西游 *******/