C++可以给一个或者多个值传递调用参数指定默认实参值。
例如:
void Fun( int a = 1, int b = 2, int c = 3);
有几点注意事项:
- 默认值放在函数的声明而不是定义中。(或者函数定义中,如果函数定义首先出现)
- 可以指定多个磨人参数,但是所有的默认实参必须在最右边的位置。
正确:
void Fun( int a = 1, int b = 2, int c = 3);
void Fun(int a , int b = 2, int c=9)
错误:
void Fun(int a , int b = 2, int c)
默认参数只能是值传递,对于引用传递没有任何意义。
默认函数与重载存在二义性问题:
若有如下两个函数:
void Fun(int one, int two = 2);
void Fun(int one);
调用fun(3);两个函数都匹配,程序会报错。