注意事项:
- 如果某个位置开始有默认参数,则从这个位置往后都必须有默认参数
- 如果函数声明有了默认参数,函数定义就不能有默认参数,声明或定义中只能存在一份默认参数,避免引起二义性
#include <iostream> //如果某个位置开始有默认参数,则从这个位置往后都必须有默认参数,即b有默认参数,c必须也要有默认参数 int func(int a, int b = 20, int c = 30) { return a + b + c; } //如果函数声明有了默认参数,函数定义就不能有默认参数,否则会报重定义默认参数 int func2(int a, int b = 20); int func2(int a, int b) { return a + b; } //如果函数定义有了默认参数,函数声明就不能有默认参数,即只能使用一份默认参数 int func3(int a, int b); int func3(int a, int b = 30) { return a + b; } int main() { int ret = func(10); //ret=60 int ret2 = func2(10); //ret=30 int ret3 = func3(10); //ret=40 system("pause"); return 0; }