答:函数原型声明里和函数定义中都行。但是必须满足两个规则:
1.只能在函数声明和函数定义中选一个,不能两个都定义默认参数。
2.默认参数无论定义在函数声明还是函数定义中,必须位于调用该函数的函数前面。
例子:可以通过编译:
#include <iostream>
using namespace std;
int add(int m1, int m2, int m3, int m4);
int add(int m1, int m2, int m3=0, int m4=0) {
return m1+m2+m3+m4;
}
void main() {
cout << add(1, 3) << "," << add(1, 3, 5) << "," << add(1, 3, 5, 7) << endl;
}
不能通过编译的例子:
#include <iostream>
using namespace std;
int add(int m1, int m2, int m3, int m4);
void main() {
cout << add(1, 3) << "," << add(1, 3, 5) << "," << add(1, 3, 5, 7) << endl;
}
int add(int m1, int m2, int m3=0, int m4=0) {
return m1+m2+m3+m4;
}