默认参数
默认参数指的是当函数调用中省略了实参时自动使用的一个值,例如:
void wow(int n);
设置n有默认值1, 那么当调用wow()的时候相当于wow(1).
如何设置默认值呢? 通过函数原型, 例如:
char * left(const char * str, int n = 1);
这个函数原型就声明了left的第二个参数的默认值是1. 如果省略了参数n, 则默认值是1, 否则, 传递的值将覆盖1.
对于带参数列表的函数, 必须从右向左添加默认值, 也就是说, 要为某个参数设置默认值, 则必须为它右边的所有参数提供默认值:
// 合法的
int harpo(int n , int m = 4, int j = 5);
// 合法的
int groucho(int k = 1, int m = 2, int n = 3);
// 非法的, 因为没有将j设置默认值
int chico(int n, int m = 6, int j);
那么harpo的调用方法:
// 相当于harpo(2, 4, 5);
beep = harpo(2);
// 相当于harpo(1, 8, 5)
beep = harpo(1, 8);
// 没有使用默认值
beep = harpo(6, 7, 8);
实参按从左到右的顺序依次被