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; }