C++在定义函数时可以给形参设置一个默认值,设置了默认值的形参称为默认参数。函数调用时默认参数不必赋值也可使用,此时函数内部将使用预设值,如果传入了参数,默认参数将会被替换。但是在声明时指定和定义时指定默认参数会有一些需要注意的点。
首先,如果一个形参被指定了默认参数,那么这个形参之后的形参都需要指定默认参数。如图


当给c指定默认参数后

![]()
其次,函数可以进行多次声明,而声明多次都可以给不同形参指定默认值。

结果与上例相同,但注意两次声明指定参数的次序,由于前面的因素,把本例两次函数声明交换次序编译会报错。
最后,C++ 规定,在给定的作用域中只能指定一次默认参数 。如图


注意:如果声明时某一形参未指定默认变量,而在定义时指定,调用函数时必须给这个形参传值(等于默认参数没用),否则将会报错:too few arguments to function;
上述总结如果错误遗漏还请不吝指教,感谢。
本文探讨了在C++中为函数形参指定默认参数的规则。首先,一旦一个形参设置了默认值,其后的形参都必须有默认值。其次,函数可以多次声明并分别指定不同形参的默认值,但要注意声明顺序。最后,每个作用域中只能为形参指定一次默认参数。如果在声明时未指定默认参数,而在定义时指定,调用时必须提供该形参的值,否则会导致编译错误。
448





