default parameters - ShenYj/ShenYj.github.io GitHub Wiki
C++
允许函数设置默认参数, 在调用时可以根据情况省略实参
int sum(int v1 = 3, int v2 = 4) {
return v1 + v2;
}
int main() {
sum(); // 3 + 4
sum(2); // 2 + 4
sum(3, 5); // 3 + 5
getchar();
return 0;
}
规则:
-
必须从右到左设置默认值 错误示例:
int sum(int v1 = 3, int v2)
编译会报错的 -
如果函数同时有声明、实现,默认参数只能放在函数声明中
-
示例
int sum(int v1 = 3, int v2 = 4); int sum(int v1, int v2) { return v1 + v2; }
-
-
默认参数的值可以是常量、全局符号(全局变量、函数名)
-
示例
int age = 20; int sum(int v1 = 3, int v2 = age); int sum(int v1, int v2) { return v1 + v2; }
void test(int a) { cout << "test(int) - " << a << endl; } void func(int v1, void(*p)(int) = test) { p(v1); }
-
-
函数重载、默认参数可能会产生冲突, 二义性(建议优先选择使用默认参数)