C++里默认参数这东西确实能让调用函数更顺手。咱们先说啥叫默认参数,就是在写函数的时候,给形参指定个值,这就是默认值。你调用函数的时候,要是忘了写那个对应的参数,编译器会自己给你填上这个默认值。说白了,你可以少写几个参数,函数照样跑得通。 比如这段代码就把它用法演示得很清楚: 我们先看看运行结果,就知道这默认参数多好使了。只要你在声明的时候设好了默认值,调用的时候就可以随便省略这些参数。不过得注意位置规则。C++规定,默认参数只能写在形参列表的最后面。只要你给某个形参设了默认值,后面那些参数也得都设默认值才行。传参的时候是从左往右一个一个匹配的,所以只要你在声明里把连续的默认参数写明白了,就不会传错顺序。 举个例子: 下面这两种写法肯定会报错: 记住这个规则很重要,不然编译的时候就容易出问题。另外还有个要小心的坑就是声明和定义冲突。如果你在声明处给b赋了个默认值10,在定义处又给b赋了20,这肯定不行。编译器会觉得你两次给同一个参数赋值,直接报错。 还有个“可见性”的问题也得注意。如果你只在定义里写了默认参数,外面调用的人是看不到这个默认值的。这时候编译器在处理函数重载的时候就搞不清到底选哪个版本好了。 为了避免这种情况,最好的做法就是把默认参数写在声明里面。这样别人看一眼函数声明就知道哪些参数可以省略了,也方便类成员函数被外面调用。