C++新手关于默认参数和函数重载的问题
C++中默认参数的效果如何通过函数重载达到?最好能举例说明。
默认参数了就不能重载了,要不然有歧义。
比如,如果有了
void f(int a, int b = 0)
就不能
void f(int a)
了。
否则
f(5)
就不知道到底是以默认参数调用 f(5, 0) 还是调用重载的 f(5)。
程序代码:#include<iostream>
using namespace std;
int add(int a, int b)
{
return a+b;
}
int add(int a)
{
return add(a, 0);
}
int add2(int a, int b = 0)
{
return a+b;
}
int main()
{
cout << "1+1=" << add(1,1) << endl;
cout << "1+0=" << add(1) << endl;
cout << "1+1=" << add2(1,1) << endl;
cout << "1+0=" << add2(1) << endl;
return 0;
}